如何设置 GroupBox 标题颜色

How do I set the GroupBox caption colour

提问人:Patrick McDonald 提问时间:2/26/2009 最后编辑:CommunityPatrick McDonald 更新时间:1/16/2014 访问量:12025

问:

在我的系统上,groupbox 的标题始终是深蓝色,如何更改?

如何更改组框上边框的颜色?的答案显示了如何覆盖标题和边框的绘制,但我不想处理视觉样式和绘制圆角等。

.NET WinForms GroupBox

评论


答:

0赞 Peter Turner 2/26/2009 #1

至少在 Delphi 中,标题只是字体颜色,你要确保 parentfont 是 false。但这对你来说可能根本没有用,因为你标记了你的问题.net

4赞 Moose 2/26/2009 #2

ForeColor 是控制分组框中文本颜色的属性。

评论

0赞 NapkinBob 10/11/2023
但这并不能回答如何更改不受 ForeColor 影响的标题颜色的问题
0赞 Moose 10/12/2023
@NapkinBob:14年前,我想它确实回答了这个问题,因为OP接受了它。
0赞 NapkinBob 11/14/2023
我真的以为答案是 2019 年的。我在自己的项目中注意到,有时当我更改前色时,它会更改除标签之外的所有内容,但是如果我将其更改回另一种颜色并再次更改它,它就可以正常工作,所以我假设这是 VS 设计器中的错误?正如你提到的,它似乎确实有效。
1赞 Patrick McDonald 2/26/2009 #3

似乎我可以通过将 ForeColor 设置为我想要的颜色并将 FlatStyle 设置为 Standard 来设置标题颜色。

如果 FlatStyle 为 System,或者它是 Standard 并且 ForeColor 未更改默认值,则标题颜色将设置为 XP 主题中指定的颜色。

3赞 Hans Passant 2/27/2009 #4

这应该可以解决问题:

public Form1()
{
  InitializeComponent();
  GroupBoxRenderer.RenderMatchingApplicationState = false;
  groupBox1.ForeColor = Color.Green;
}

评论

0赞 Patrick McDonald 2/27/2009
这是我问过的另一个问题的答案,如果你把这个答案发布到 [stackoverflow.com/questions/590864/...我会在那里接受它
1赞 almhe03 10/26/2010 #5

以上对我没有帮助。
我通过添加GroupBox.Header标签在这里找到了解决方案:

<GroupBox>
  <GroupBox.Header>
      <TextBlock Text="Header" Foreground="Black"/>
  </GroupBox.Header>
</GroupBox>

评论

4赞 almhe03 10/26/2010
这是针对 WPF,而不是 WinForms。
0赞 nawfal 9/21/2011 #6

设置

groupBox1.ForeColor

更改 GroupBox 内其他控件(如按钮、标签等)的前色,如果您只需要更改 GroupBox 的文本颜色,这在大多数情况下是不受欢迎的。一个简单的解决方法是

    private void button1_Click(object sender, EventArgs e)
    {
        List<Color> lstColour = new List<Color>();
        foreach (Control c in groupBox1.Controls)
            lstColour.Add(c.ForeColor);

        groupBox1.ForeColor = Color.Red; //the colour you prefer for the text

        int index = 0;
        foreach (Control c in groupBox1.Controls)
        {
            c.ForeColor = lstColour[index];
            index++;
        }
    }

当然,如果稍后以编程方式将控件添加到组框中,则上述代码可能毫无意义,但好消息是可以通过在代码中添加额外的条件来处理所有这些情况。为了加倍确定,可以使用控件和前色的 keyvaluepair 列表。