Question

Comment changer la couleur du texte d'une zone de groupe en C #? La « documentation » ne mentionne même pas, et recherche sur Google n'a pas retroussé une réponse.

Merci! Alan

Était-ce utile?

La solution

Utilisez la propriété ForeColor . Exemple de code:

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

Autres conseils

En fait toutes les réponses affichées ici modifie le ForeColor d'autres commandes comme le bouton, l'étiquette etc résidant à l'intérieur de la zone de groupe. Pour modifier spécifiquement simplement la couleur du texte de la groupbox il existe une solution 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++;
        }
    }

Bien sûr, le code ci-dessus peut être vide de sens si vous ajoutez des contrôles par programme plus tard à la groupbox, mais la bonne chose est que vous pouvez gérer toutes les situations que en ajoutant des conditions supplémentaires dans le code. Pour être doublement sûr, une liste de KeyValuePair de contrôle et forecolor peut être utilisé.

Si vous faites référence au texte groupbox lui-même, utilisez alors ce que Jon Skeet affiché. Si vous faites référence à tous les contrôles ultérieurs dans la zone de groupe, vous pouvez utiliser ce code:

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

Ou j'ai changé votre code un peu si l'utilisateur peut choisir entre 2 types de couleurs pour GroupBox seulement:

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

Passage « vrai » ou « faux » valeurs à la mehod supérieure, va changer le GroupBox ForeColor seulement - alors que tous les autres contrôles forecolor resteront par défaut (noir)

.

cent de mes.

Je suppose que vous êtes en WinForms pas WPF maintenant.

Pour changer la couleur du texte d'une zone de groupe vous utilisez ForeColor cela change la couleur de police dans le texte d'en-tête.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top