Pregunta

¿Cómo se cambia el color del texto de un cuadro de grupo en C #? La "documentación" ni siquiera menciona esto, y buscando en Google no ha aparecido una respuesta.

Gracias! Alan

¿Fue útil?

Solución

Utilice la propiedad ForeColor . Código de ejemplo:

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

Otros consejos

En realidad, todas las respuestas publicadas aquí cambia el color de primer plano de otros controles como el botón, etiqueta etc que reside en el interior del cuadro de grupo. Para cambiar específicamente sólo el color del texto del cuadro de grupo hay una solución simple.

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

Por supuesto, el código anterior puede carecer de sentido si va a agregar controles mediante programación posterior a la caja de grupo, pero lo bueno es que puede manejar todas las situaciones que mediante la adición de condiciones adicionales en el código. Para estar completamente seguro, una lista de KeyValuePair de control y color de primer plano puede ser empleado.

Si se refiere al texto mismo cuadro de grupo, a continuación, utilizar lo que ha escrito Jon Skeet. Si se refiere a todos los controles posteriores en el cuadro de grupo, entonces puede utilizar este código:

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

O He cambiado su código un poco para que el usuario puede elegir entre 2 tipos de color para GroupBox solamente:

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

Al pasar los valores "verdadero" o "falso" a la mehod superior, va a cambiar el cuadro de grupo ForeColor única - mientras que todos los otros controles forecolor permanecerán por defecto (negro)

.

un centavo mío.

Estoy asumiendo que usted está en WinForms WPF no en este momento.

Para cambiar el color del texto de un cuadro de grupo se utiliza ForeColor esto cambia el color de la fuente en el texto de cabecera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top