我需要将组框文本更改为特定颜色,而不更改组框中内容的颜色。
下面的代码将GroupBox的ForeColor设置为粉色,但此设置也会级联到所有子控件:
groupbox.ForeColor = Color.Pink 如何在不将颜色应用于每个子控件的情况下更改GroupBox的ForeColor?
发布于 2009-03-19 13:30:40
您可以遍历GroupBox中的所有控件并设置它们各自的ForeColor属性:
groupBox1.ForeColor = Color.Pink;
foreach (Control ctl in groupBox1.Controls) {
ctl.ForeColor = SystemColors.ControlText;
}发布于 2017-06-08 23:38:29
form_load()
{
...
foreach (Control ctl in groupbox.Controls)
{
// load color value from parent and explicitly set it to control level
ctl.ForeColor = ctl.ForeColor;
}
...
}
some_click()
{
groupbox.ForeColor = Color.Pink;
}
someother_click()
{
groupbox.ForeColor = Color.Green;
}在显式设置子控件的颜色之前,以及在子控件颜色请求从父控件获取颜色之前,不会为子控件设置颜色。更改父控件的颜色将刷新其所有内容,而子控件将从父控件获取颜色。
如果您设置(显式)子对象颜色,那么子对象将不会“询问”父对象。
子颜色也可以在designer中设置,但如果颜色与父颜色相同,designer将减少此设置。load事件中的代码强制子级具有自己的颜色。
https://stackoverflow.com/questions/662160
复制相似问题