2009-06-02 88 views
6

如何更改C#中組框的文本顏色? 「文檔」甚至沒有提到這一點,谷歌沒有提出答案。更改組框文本顏色?

謝謝! Alan

+4

在我的情況下,ForeColor被正確設置(對於白色,可能從ForeColor = White和BackColor = Black繼承而來),但顯示爲藍色 - 將其更改爲另一種顏色並返回到屬性窗口中訣竅!現在,該屬性以粗體顯示,表示它已更改。 – 2010-03-11 08:50:22

回答

12

使用ForeColor屬性。示例代碼:

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

工程就像一個魅力!謝謝喬恩! – user20493 2009-06-02 19:43:51

1

我假設你現在不在WPF中的winforms。

要更改使用ForeColor的組框的文本顏色,將更改標題文本中的字體顏色。

4

如果您指的是groupbox文本本身,請使用Jon Skeet發佈的內容。如果你指的是所有後續控件組框,那麼你可以使用此代碼:

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

其實都貼在這裏的答案改變其他控件像按鈕,標籤等駐留在組框裏面的前景色。要專門更改groupbox的文本顏色,有一個簡單的解決方法。

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

當然上面的代碼可以是毫無意義的,如果你是編程後來到分組框中添加控件,但好處是,你可以通過在代碼中添加額外的條件,處理所有的情況。要加倍確定,可以使用控制和前景的keyvalue對。

+1

偉大的工作周圍的伴侶!這是我正在尋找的。票數+1 :) – 2012-05-23 05:04:21

2

或者我已經改變了你的代碼了一點,所以用戶可以選擇2種顏色之間只有GROUPBOX:

傳遞「真」或「假」值上mehod,將改變GROUPBOX只有ForeColor - 所有其他控件forecolor將保持默認(黑色)。

我的一分錢。