2009-04-17 84 views
13

TextBox屬性BackColor的默認行爲如下:當啓用時,它是WhiteSystemColors.Window),禁用時它是灰色的(不確定是什麼SystemColor)。如何重置.NET Windows窗體文本框BackColor屬性?

如果我改變BackColor屬性,相同的顏色用於兩個Enabled和Disabled。如何重置BackColor屬性(之前已更改),以便行爲恢復爲默認值?

我已經嘗試設置回SystemColors.Window,但隨後被禁用時,盒子保持白色。

回答

27

如果您在設計師的意思是,你可以點擊進入背景色屬性並刪除無論是在那裏,然後按回車鍵。這會將該屬性重置爲其默認值。

如果你在代碼的意思是,你可以將背景色屬性設置爲Color.Empty,這將有同樣的效果。

1

如果沒有辦法重置控件,所以它會返回到啓用/禁用時自動更改其背景顏色我建議使用UIElement.IsEnabledChanged事件來設置您想要的啓用/禁用 背景顏色。我希望這是有幫助的!

+0

我想你的答案可能是在談論什麼時候使用WPF。他的問題針對winforms(基於標籤) – dustyburwell 2009-04-17 14:18:10

+0

+1感謝Adam,這幾乎是我在做什麼,我去了另一個解決方案發布在這裏,因爲它很可能適用於非標準的配色方案。 – 2009-04-17 14:43:28

1

SystemColors.Window(通常)是白色的。使用SystemColors.Control

你可以,當然,緩存中使用的顏色,當你把它設置爲你自己,然後用它來重置。但最終,任何一種方法都行得通。

+0

緩存顏色總是一個好主意:)以便您可以將其返回到之前的狀態。雖然它是一個很難的解決方案,當你說,5或6種顏色之間旋轉。 – kralco626 2010-07-22 17:36:28

3
TextBox.ResetBackColor() 

由於某種原因,它不彈出IntelliSense,但它在那裏,它編譯。

+1

我可能會避免這種情況,因爲「Reset [PropertyName]」函數是序列化框架的一部分。除非有令人信服的理由,否則我會避免使用故意從Intellisense中排除的功能。 – 2009-04-17 14:18:18