4

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

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

4

6 回答 6

4

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

于 2009-02-26T14:13:47.223 回答
3

这应该可以解决问题:

public Form1()
{
  InitializeComponent();
  GroupBoxRenderer.RenderMatchingApplicationState = false;
  groupBox1.ForeColor = Color.Green;
}
于 2009-02-26T17:01:08.680 回答
1

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

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

于 2009-02-26T14:14:15.243 回答
1

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

<GroupBox>
  <GroupBox.Header>
      <TextBlock Text="Header" Foreground="Black"/>
  </GroupBox.Header>
</GroupBox>
于 2010-10-26T08:27:11.127 回答
0

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

于 2009-02-26T14:08:35.473 回答
0

环境

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++;
        }
    }

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

于 2011-09-21T02:32:20.043 回答