2009-06-02 26 views
6

C# içindeki bir grup kutusunun metin rengini nasıl değiştirirsiniz? "Belgeler" bundan bile bahsetmiyor ve Googling bir cevap vermedi.Grup kutusu metin rengini değiştir?

Teşekkürler! Alan

+4

Benim durumumda, ForeColor doğru olarak ayarlandı (Beyaz, büyük olasılıkla ForeColor = Beyaz ve BackColor = Siyah olan Formdan devralındı), fakat Mavi gösteriliyordu - bunu başka bir renge dönüştürüyordu ve özellikler penceresine geri döndü Numara! Şimdi, özellik değiştiğini belirterek kalın olarak görüntülenir. –

cevap

12

ForeColor özelliğini kullanın. Örnek kod:

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

Bir çekicilik gibi çalışır! Sağol Jon! – user20493

1

Şimdi WPF'de olmayan winform'larda olduğunuzu kabul ediyorum.

Bir grup kutusunun metin rengini değiştirmek için, ForeColor kullanın, bu başlık metnindeki yazı tipi rengini değiştirir.

4

Grup kutusu metninin kendisine atıfta bulunuyorsanız, Jon Skeet'in yayınladığı şeyi kullanın.

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

burada yayınlanan Aslında tüm cevapları grup kutusunda içeride bulunan düğme, etiket vb gibi diğer kontrollerin forecolor değiştirir: Eğer grup kutusunda sonraki tüm denetimlere bahsediyorsan, o zaman bu kodu kullanabilirsiniz. Grup kutusunun sadece metin rengini değiştirmek için basit bir çözüm var. Tabii

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

programlı sonra grup kutusunda denetimler ekliyorsanız Yukarıdaki kod anlamsız olabilir, ama iyi bir şey kodda ekstra koşullar ekleyerek tüm bu durumları işleyebilir olduğunu. İki kere emin olmak için, kontrol ve ön renklerdeki bir tuş eşanlamlıları listesi kullanılabilir.

+1

Harika bir çalışma arkadaşı! Aradığım şey bu. Oylar +1 :) –

+0

Not Yukarıdakiler güvenli değil. Grup kutusu rengini değiştiriyor ve aynı zamanda kontroller ekleyerek/çıkarıyorsanız, kontrol referansını renkle kaydetmek için bir sözlük veya tuples listesi kullanabilir ve ardından bu koleksiyonun yerine ikinci döngüde foreach'ı kullanabilirsiniz. değişmiş kontrol listesi. –

+0

@DeniseSkidmore evet iyi bir nokta, ben zaten bu hat boyunca cevabında bahsettim. – nawfal

2

Veya kullanıcı seçebilir yüzden sadece groupbox için renk 2 türleri arasında da kod biraz değişti: üst Metot "true" veya "false" değerleri Geçme

, groupbox değişecek Yalnızca ForeColor - diğer tüm kontroller ön renkler varsayılan olarak kalır (siyah). Bir yüzdelik

.