Я не понимаю это баг какой то, или разработчики языка просто забыли добавить это свойство? В интернете по этому поводу только одна тема в которой ответа на этот вопрос так я и не нашел.
И так, при динамическом добавлении контролов на TabControl, я не могу обратится к свойству FlatApperance для кнопки.Возможно вы скажете, что контрол создается динамически и не понятно что создается: кнопка, текстбокс и тд. Но все должно быть понятно и ясно т.к. перед созданием самого контрола указывается его тип, и следовательно должны быть переопределены все свойства для этого типа.К примеру:
tabControl1.TabPages[$"page{i}"].Controls.Add(new TextBox()
{
Name = "tb_rec_title",
Text = dr["title"].ToString(),
Font = new Font("Segoe UI Semilight", 14, FontStyle.Regular),
Location = new Point(23, 25),
Size = new Size(300, 25),
WordWrap = true
});
В данном коде создается текстбокс и ему присваиваются свойства, в том числе WordWrap, который не имеется к примеру у кнопки. И действительно, создавая кнопку нельзя обратится к этому свойству. Тогда в чем проблема, почему нельзя обратится к свойству FlatApperance для кнопки? Вот, что мне не понятно...
tabControl1.TabPages[$"page{i}"].Controls.Add(new Button()
{
Name = "btn_img_back",
Text = "<",
Font = new Font("Microsoft YaHei UI", 11, FontStyle.Regular),
Location = new Point(406, 100),
Size = new Size(22, 35),
Cursor = Cursors.Hand,
FlatStyle = FlatStyle.Flat,
BackColor = Color.Transparent,
/*FlatAppearance.BorderColor = Color.White*/
});
Т.к. кнопка создается динамически, к нему нельзя просто так обратится, например как тут
Button btn = new Button();
btn.FlatAppearance.BorderColor = Color.White;
Дело в том, что в синтаксисе
new C()
{
name1 = value1,
name2 = value2
}
name1/name2 должны быть именами свойств и ничем другим. В вашем коде указано FlatAppearance.BorderColor, это не имя свойства.
Для вложенных свойств есть малоизвестный специальный синтаксис, в котором можно не создавать подобъект, а только указывать его свойства. Должно сработать так:
new Button()
{
Name = "btn_img_back",
Text = "<",
Font = new Font("Microsoft YaHei UI", 11, FontStyle.Regular),
Location = new Point(406, 100),
Size = new Size(22, 35),
Cursor = Cursors.Hand,
FlatStyle = FlatStyle.Flat,
BackColor = Color.Transparent,
FlatAppearance = // <-- тут НЕ указываем создание объекта
{
BorderColor = Color.White
}
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники