首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不将颜色应用于每个子控件的情况下更改GroupBox的ForeColor?

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

Stack Overflow用户
提问于 2009-03-19 13:20:23
回答 2查看 4.4K关注 0票数 4

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

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

代码语言:javascript
运行
复制
groupbox.ForeColor = Color.Pink 

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-03-19 13:30:40

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

代码语言:javascript
运行
复制
groupBox1.ForeColor = Color.Pink;
foreach (Control ctl in groupBox1.Controls) {
    ctl.ForeColor = SystemColors.ControlText;
}
票数 4
EN

Stack Overflow用户

发布于 2017-06-08 23:38:29

代码语言:javascript
运行
复制
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事件中的代码强制子级具有自己的颜色。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/662160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档