更改组框文字颜色?

时间:2009-06-02 19:37:52

标签: c# groupbox textcolor

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

谢谢! 艾伦

5 个答案:

答案 0 :(得分:12)

使用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);
    }
}

答案 1 :(得分:5)

实际上,此处发布的所有答案都会更改其他控件的前景色,例如位于组框内的按钮,标签等。要专门更改组框的文本颜色,有一个简单的解决方法。

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

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

答案 2 :(得分:4)

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

        foreach (Control c in this.groupBox1.Controls)
        {
            c.ForeColor = this.groupBox1.ForeColor; //or whatever color you want
        }

答案 3 :(得分:2)

或者我稍微更改了您的代码,因此用户只能为groupBox选择两种颜色:

    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”值传递给上面的mehod,将仅更改groupBox ForeColor - 而所有其他控件forecolor将保持默认值(黑色)。

我的一分钱。

答案 4 :(得分:1)

我假设你现在不在WPF中胜利。

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