首页 文章

如何在不将颜色应用于每个子控件的情况下更改GroupBox的ForeColor?

提问于
浏览
2

我需要将组框文本更改为特定颜色,而不更改组框内部的颜色 .

以下代码将 GroupBoxForeColor 设置为粉红色,但此设置也会级联到所有子控件:

groupbox.ForeColor = Color.Pink

如何在不将颜色应用于每个子控件的情况下更改 GroupBoxForeColor

2 回答

  • 0

    您可以遍历GroupBox中的所有控件并设置它们各自的ForeColor属性:

    groupBox1.ForeColor = Color.Pink;
    foreach (Control ctl in groupBox1.Controls) {
        ctl.ForeColor = SystemColors.ControlText;
    }
    
  • 4
    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将从父级中获取颜色 .

    如果你设置(显式)子颜色,那么孩子不会“询问”父颜色 .

    儿童颜色也可以在设计师中设置,但如果颜色与父颜色相同,设计师将减少此设置 . 加载事件中的代码强制子项具有自己的颜色 .

相关问题