Change group box text color?
如何在C#中更改组框的文本颜色?"文档"甚至都没有提到这一点,并且谷歌搜索还没有找到答案。
谢谢!
艾伦
使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
实际上,这里发布的所有答案都会更改组框内其他控件(如按钮,标签等)的前景色。要专门更改组框的文本颜色,有一个简单的解决方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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++; } } |
当然,如果以后要以编程方式将控件添加到组框中,则上面的代码可能毫无意义,但是好处是,您可以通过在代码中添加额外的条件来处理所有情况。可以肯定的是,可以使用控件和前景色的键值对列表。
如果您指的是groupbox文本本身,请使用Jon Skeet发表的内容。如果要引用组框中的所有后续控件,则可以使用以下代码:
1 2 3 4 | foreach (Control c in this.groupBox1.Controls) { c.ForeColor = this.groupBox1.ForeColor; //or whatever color you want } |
或者,我对您的代码进行了一些更改,因此用户只能在groupBox的两种颜色之间进行选择:
1 2 3 4 5 6 7 8 9 10 11 | 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前景色-而所有其他控件前景色将保持默认(黑色)。
一分钱
我假设您现在使用的是Winforms,而不是WPF。
要更改组框的文本颜色,请使用ForeColor,这会更改标题文本中的字体颜色。