Panel BackColor 设置其控件的颜色
Panel BackColor setting color of it's controls
我只想设置面板区域的背景颜色,但它不知何故也设置了它的控件的背景颜色,这是怎么回事?
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);
}
这是设计使然。默认情况下,BackColor
属性 是环境 属性,这意味着它从其父控件继承其值。当您将其明确设置为特定值时,会覆盖环境性质并强制它使用该特定值。
像这样明确设置按钮的颜色
p.Controls.Add(b);
b.BackColor = Color.White;
this.Controls.Add(p);
我只想设置面板区域的背景颜色,但它不知何故也设置了它的控件的背景颜色,这是怎么回事?
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);
}
这是设计使然。默认情况下,BackColor
属性 是环境 属性,这意味着它从其父控件继承其值。当您将其明确设置为特定值时,会覆盖环境性质并强制它使用该特定值。
像这样明确设置按钮的颜色
p.Controls.Add(b);
b.BackColor = Color.White;
this.Controls.Add(p);