Вопрос

Как изменить цвет текста группового поля в 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. Это меняет цвет шрифта в тексте заголовка.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top