2013-02-20 92 views
0

我有textBox1這是隻讀的。我試圖改變改變只讀文本框的文本顏色c#

textBox1.ForeColor = Color.Red; 

但它不起作用。任何想法 ?

+0

發現這個問題http://stackoverflow.com/questions/276179/how-to-change-the-font-color-of-a-disabled-textbox,可能是你在找什麼。 – Roise 2013-02-20 15:21:14

回答

4

當您將TextBox控件的屬性設置爲ReadOnly時,該文本變爲灰色。這是默認行爲。

如果您有要求以紅色顯示它,那麼您不應該設置ReadOnly屬性,而是手動處理TextChanged事件,並保持舊值不變。但我不推薦它。

+0

只是想知道,爲什麼你不建議這樣做? – 2015-04-15 01:24:32

+0

@BrianSnow - 好吧,因爲如果你開始在代碼隱藏中工作,而不是將你的UI封裝起來並鬆散地耦合到邏輯背後,它往往會變得混亂。 – dutzu 2015-04-20 08:05:51

+0

更好的方法是將texbox與您想要的行爲一起作爲自定義控件(如果您打算重新使用它) – dutzu 2015-04-20 08:11:10

0

您可以對只讀文本框執行什麼操作(首先將其更改爲讀/寫),則可以覆蓋所述TextBoxKeyPress()事件,並忽略從此處開始的所有輸入。

1

嘗試取消事件的按鍵:

textBox1.Text = "Test"; 
textBox1.ForeColor = Color.Red; 
textBox1.KeyPress += new KeyPressEventHandler(textBox1_KeyPress); 

void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
e.Handled = true; 
} 

只讀屬性總是灰色的控制了。這是默認行爲。

0

這會幫助你:

textBox1.BackColor = Color.FromKnownColor(KnownColor.Control); 
textBox1.ForeColor = Color.Red; 
textBox1.ReadOnly = true; 
-1

這會幫助你。

textboxname.ForeColor = Color.FromKnownColor(KnownColor.selectanycolor); 
+0

您好,歡迎來到SO。請參閱我們的幫助中心,特別是http://stackoverflow.com/help/how-to-answer。特別是,請您編輯您的答案,以解釋如何以及爲何解決提問者的問題? – 2016-06-05 06:28:29