Панель BackColor устанавливает цвет своих элементов управления
Я хочу установить цвет фона только для области панели, но он как-то также устанавливает цвет фона для своих элементов управления, что с ним не так?
public Form1()
{
InitializeComponent();
Panel p = new Panel();
p.Size = this.ClientSize;
p.BackColor = Color.Black; // The button will also have black background color
Button b = new Button();
b.Size = new Size(this.ClientSize.Width, 50);
p.Controls.Add(b);
this.Controls.Add(p);
}
1 ответ
Решение
Это по замыслу. BackColor
По умолчанию свойство является окружающим свойством, то есть оно наследует свое значение от родительского элемента управления. Когда вы устанавливаете его явно на определенное значение, это переопределяет окружающий характер и заставляет его использовать это конкретное значение.
явно установить цвет кнопки, как это
p.Controls.Add(b);
b.BackColor = Color.White;
this.Controls.Add(p);