Domanda

Come si fa a cambiare il colore del testo di una casella di gruppo in C #? Il "documentazione" non menziona neppure questo, e Googling non ha alzato una risposta.

Grazie! Alan

È stato utile?

Soluzione

Utilizzare la proprietà ForeColor . codice di esempio:

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

Altri suggerimenti

In realtà tutte le risposte pubblicati qui cambia il forecolor di altri controlli bottoni, etichette ecc residente all'interno della GroupBox simili. Per cambiare specificamente solo il colore del testo del GroupBox c'è una soluzione semplice.

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

Naturalmente il codice di cui sopra può essere priva di significato se si sta aggiungendo controlli di programmazione in seguito alla GroupBox, ma la cosa buona è che si può gestire tutte le situazioni che con l'aggiunta di condizioni supplementari in codice. Per essere doppiamente sicuro, un elenco di KeyValuePair di controllo e di forecolor può essere impiegato.

Se ti riferisci al testo groupbox in sé, quindi utilizzare ciò che ha scritto Jon Skeet. Se ti riferisci a tutti i controlli successivi nella casella di gruppo, quindi è possibile utilizzare questo codice:

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

O ho cambiato il codice in modo un po 'utente può scegliere tra 2 tipi di colore per GroupBox solo:

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

Passaggio "vere" o "false" valori al mehod superiore, cambierà il GroupBox ForeColor unico - mentre tutti gli altri controlli forecolor rimarranno predefinito (nero)

.

un centesimo di mine.

sto assumendo si è in WinForms non in WPF ora.

Per modificare il colore del testo di una casella di gruppo si utilizza ForeColor questo cambia il colore del carattere nel testo di intestazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top