2011-11-21 231 views
16

我有一個Windows窗體窗體上的按鈕,當它被點擊時,我改變背景顏色爲Color.Yellow。當它再次點擊時,我想將它恢復到原始的默認外觀。還原C#Windows窗體backcolor

默認背景顏色是SystemColor.Control

當按鈕被點擊我第一次改變的唯一的事情就是

btn.Text = "ABC"; 
btn.BackColor = Color.Yellow; 

當它再次單擊我做

btn.BackColor = SystemColors.Control 

新的背景不具有相同的陰影,因爲它最初做任何點擊之前。該按鈕最初有一個不是純色的背景,但有兩個稍微不同的灰色陰影。最後的顏色最終變成了一片灰色。

我在Windows 7機器上測試這個。

截圖:

Enter image description here

+1

你能後的截圖?另外,你在運行什麼操作系統版本? –

+4

您在問題中付出的更多努力,您將得到更好的答案,包括問題的屏幕截圖。 – Nasreddine

+0

相關:* [如何重置爲默認按鈕BackColor?](http://stackoverflow.com/questions/10569200)* –

回答

22

試試這個:

if (button1.BackColor == Color.Yellow) 
{ 
    button1.BackColor = SystemColors.Control; 
    button1.UseVisualStyleBackColor = true; 
} 
else 
{ 
    button1.BackColor = Color.Yellow; 
} 
+0

賓果,工作感謝 – JonF

+0

+1良好的捕獲我沒有意識到這種方法 –

1

嘗試使用btn.ResetBackColor()代替手動設置BackColor

+1

該函數不存在於winform按鈕中(至少在.net 3.5 winform中) – JonF

+1

它確實存在,它只是不顯示在intellisense中,因爲它被標記爲[EditorBrowsable(EditorBrowsableState.Never)] –

+1

@JonF根據[MSDN](http://msdn.microsoft.com/en-us/library /system.windows.forms.control.resetbackcolor.aspx)它存在,因爲.Net 1.0 – Nasreddine

11

您還應該將UseVisualStyleBackColor設置爲true。當您更改背景顏色時,此屬性設置爲false。

+2

+1這正是你需要解決你的問題。 –

1

這將恢復默認外觀(在Windows 7測試,.NET 3.5):

btn.BackColor = System.Drawing.Color.Transparent;