Pergunta

Como você muda a cor do texto de uma caixa de grupo em C #? A "documentação" nem sequer menciona isso, e pesquisando não apareceu uma resposta.

Obrigado! Alan

Foi útil?

Solução

propriedade

Use a ForeColor . código de exemplo:

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

Outras dicas

Na verdade todas as respostas postadas aqui muda o forecolor de outros controles como botão, etiqueta etc que residem no interior do groupbox. Para alterar especificamente apenas a cor do texto do groupbox há uma solução simples.

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

Claro que o código acima pode ser sentido se você está adicionando controles programaticamente mais tarde para o groupbox, mas a coisa boa é que você pode lidar com tudo o que situações adicionando condições extra no código. Para ser duplamente certo, uma lista de KeyValuePair de controle e forecolor podem ser empregadas.

Se você está se referindo ao próprio texto groupbox, em seguida, usar o que Jon Skeet postou. Se você está se referindo a todos os controles posteriores na groupbox, então você pode usar este código:

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

Ou eu ter mudado o seu código um pouco para que o usuário pode escolher entre 2 tipos de cores para GroupBox apenas:

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

Passando "verdadeiro" ou "falso" valores ao mehod superior, vai mudar o GroupBox ForeColor única -., Enquanto todos os outros controles forecolor permanecerão padrão (preto)

um centavo meu.

Eu estou supondo que você está em winforms não em WPF agora.

Para alterar a cor do texto de uma caixa de grupo para usar ForeColor isso muda a cor da fonte no texto do cabeçalho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top