[英]How do I change the ForeColor of a GroupBox without having that color applied to every child control as well?
我需要將組框文本更改為特定顏色,而不更改組框內的顏色。
以下代碼將GroupBox
的ForeColor
設置為粉紅色,但此設置也級聯到所有子控件:
groupbox.ForeColor = Color.Pink
如何在不將該顏色應用於每個子控件的情況下更改GroupBox
的ForeColor
?
您可以遍歷 GroupBox 中的所有控件並設置它們各自的 ForeColor 屬性:
groupBox1.ForeColor = Color.Pink;
foreach (Control ctl in groupBox1.Controls) {
ctl.ForeColor = SystemColors.ControlText;
}
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;
}
在明確完成之前,不會為子控件設置顏色,並且當子控件顏色請求從父控件獲取時。 更改父級的顏色將刷新其所有內容,子控件將從父級獲取顏色。
如果您(顯式)設置子顏色,則子顏色將不會“詢問”父顏色。
子顏色也可以在設計器中設置,但如果顏色與父顏色相同,設計器會減少此設置。 加載事件中的代碼強制孩子擁有自己的顏色。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.