Изменить цвет текста в групповом поле?
Вопрос
Как изменить цвет текста группового поля в C#?В «документации» об этом даже не упоминается, а поиск в Google не дал ответа.
Спасибо!Алан
Решение
Использовать 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);
}
}
Другие советы
На самом деле все ответы, опубликованные здесь, меняют цвет переднего цвета других элементов управления, таких как кнопка, метка и т. д., находящихся внутри группового поля.Чтобы специально изменить только цвет текста группового поля, существует простой обходной путь.
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++;
}
}
Конечно, приведенный выше код может оказаться бессмысленным, если вы позже программно добавите элементы управления в групповой блок, но хорошо, что вы можете справиться со всеми этими ситуациями, добавив дополнительные условия в код.Чтобы быть вдвойне уверенным, можно использовать список пар ключ-значение элемента управления и цвета текста.
Если вы имеете в виду сам текст группового поля, используйте то, что опубликовал Джон Скит.Если вы имеете в виду все последующие элементы управления в групповом поле, вы можете использовать этот код:
foreach (Control c in this.groupBox1.Controls)
{
c.ForeColor = this.groupBox1.ForeColor; //or whatever color you want
}
Или я немного изменил ваш код, чтобы пользователь мог выбирать между двумя типами цвета только для 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» верхнему методу изменит только цвет переднего плана groupBox, в то время как цвет переднего цвета всех остальных элементов управления останется по умолчанию (черный).
цент мой.
Я предполагаю, что вы сейчас находитесь в Winforms, а не в WPF.
Чтобы изменить цвет текста группового поля, вы используете ForeColor. Это меняет цвет шрифта в тексте заголовка.