我需要将组框文本更改为特定颜色,而不更改组框内部的颜色。
以下代码将ForeColor
的{{1}}设置为粉红色,但此设置也会级联到所有子控件:
GroupBox
如果没有将颜色应用于每个子控件,如何更改groupbox.ForeColor = Color.Pink
的{{1}}?
答案 0 :(得分:4)
您可以遍历GroupBox中的所有控件并设置各自的ForeColor属性:
groupBox1.ForeColor = Color.Pink;
foreach (Control ctl in groupBox1.Controls) {
ctl.ForeColor = SystemColors.ControlText;
}
答案 1 :(得分:0)
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;
}
在显式完成之前,没有为childcontrol设置颜色,并且当childcontrol颜色请求它从父级获取时。更改父级的颜色将刷新所有内容,而childcontrol将从父级中获取颜色。
如果您设置(明确)儿童颜色,那么孩子将不会"询问"父节点。
儿童颜色也可以在设计师中设置,但如果颜色与父颜色相同,设计师将减少此设置。加载事件中的代码强制子具有自己的颜色。