2010-12-07 64 views
4

如何在禁用控件時更改文本的顏色。我想在c#winforms中禁用控件時設置不同的顏色。更改禁用控件的TextColor

+1

哪種類型的控制?不同的控件行爲方式不同,您需要以不同的方式處理這些情況。 – 2010-12-07 08:44:26

+0

標籤,文本框和按鈕。 – 2010-12-07 08:47:10

回答

3

編輯:我在評論中犯了和科迪一樣的錯誤,所以糾正了我的答案。

這取決於它是哪個控件。

例如,如果它是一個TextBox也許你可以使它ReadOnly,而不是禁用。而對於其他一些控件,您可能會做類似的事情,使它們看起來無法實際被禁用。

但是,如果你想正確地做到這一點,你需要讓它們自己繪製或重寫OnPaint事件並自己繪製文本。

1

您可以手動執行此操作 - 禁用控件時,只需更改文本顏色?

+3

如果所討論的控件是一個`TextBox`,這將不起作用。您只能在禁用時更改其「BackColor」,而不能更改其「ForeColor」(即文本顏色)。 – 2010-12-07 08:44:05

0

如果你有很多的控制,你可以這樣做:

  • 附上形式OnChildAdded事件
  • 的情況下,如果使用...是結構類型來確定控制型
  • 根據上的控制類型,在事件寄存器適當OnEnabledChange事件
  • ,改變文字的顏色適當

釷通過這種方式,您將擁有一段可以適用於所有表單的代碼,並將逐漸擴展爲使用您需要的所有控件。

我會提供一些代碼,如果這是你想要的方式...