6

如何在 C# 中更改组框的文本颜色?“文档”甚至没有提到这一点,谷歌搜索也没有找到答案。

谢谢!艾伦

4

5 回答 5

13

使用该ForeColor物业。示例代码:

using System;
using System.Drawing;
using System.Windows.Forms;

class Test
{       
    [STAThread]
    static void Main(string[] args)
    {
        Form form = new Form();
        GroupBox group = new GroupBox();
        group.Text = "Text";
        group.ForeColor = Color.Red;
        form.Controls.Add(group);
        Application.Run(form);
    }
}
于 2009-06-02T19:40:26.583 回答
6

实际上,此处发布的所有答案都会更改位于 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:25:12.717 回答
4

如果您指的是组框文本本身,请使用 Jon Skeet 发布的内容。如果您指的是 groupbox 中的所有后续控件,则可以使用以下代码:

        foreach (Control c in this.groupBox1.Controls)
        {
            c.ForeColor = this.groupBox1.ForeColor; //or whatever color you want
        }
于 2009-06-02T19:45:45.103 回答
2

或者我已经稍微更改了您的代码,因此用户只能在 groupBox 的 2 种颜色之间进行选择:

    private void SettingGroupBoxColor(bool bSelected)
    {
        if (!bSelected)
            groupBox1.ForeColor = Color.Red;
        else
            groupBox1.ForeColor = Color.Green;
        foreach (Control c in this.groupBox1.Controls)
        {
            c.ForeColor = Color.Black;
        }
    }

将“true”或“false”值传递给上部方法,将仅更改 groupBox ForeColor - 而所有其他控件的前景色将保持默认(黑色)。

我的一分钱。

于 2012-05-23T05:12:42.287 回答
1

我假设您现在使用的是 winforms 而不是 WPF。

要更改组框的文本颜色,请使用 ForeColor 这会更改标题文本中的字体颜色。

于 2009-06-02T19:44:30.567 回答