簡體   English   中英

如何在不將該顏色應用於每個子控件的情況下更改 GroupBox 的 ForeColor?

[英]How do I change the ForeColor of a GroupBox without having that color applied to every child control as well?

我需要將組框文本更改為特定顏色,而不更改組框內的顏色。

以下代碼將GroupBoxForeColor設置為粉紅色,但此設置也級聯到所有子控件:

groupbox.ForeColor = Color.Pink 

如何在不將該顏色應用於每個子控件的情況下更改GroupBoxForeColor

您可以遍歷 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM