2015-10-14 56 views
0

Im在WinForms中工作我在窗體上有4個按鈕。我希望能夠將鼠標懸停在其上並將FlatStyle從Flat更改爲System。懸停:使用Flatyle屬性更改按鈕C#

當您將鼠標懸停在系統樣式上時,我的代碼將所有按鈕轉換爲系統樣式,這並非我所想的。

所有按鈕應保持平直,直到您將鼠標懸停在它們上面。如果將鼠標懸停關閉按鈕,它應該變回平按鈕

private void All_Button_Hover_MouseHover(object sender, EventArgs e) 
    { 
     btn_Back.FlatStyle = FlatStyle.System; 
     Btn_Forward.FlatStyle = FlatStyle.System; 
     btn_Print.FlatStyle = FlatStyle.System; 
     btn_Open.FlatStyle = FlatStyle.System; 
    } 

enter image description here

回答

2

這裏是你能怎麼處理這個建議。

您已經在單個事件方法中設置所有按鈕,這很好。由於觸發事件的按鈕存儲在sender,你可以只使用:

private void All_Button_Hover_MouseHover(object sender, EventArgs e) 
{ 
    ((Button)sender).FlatStyle = FlatStyle.System; 
} 

要更改按鈕回到原來的FlatStyle.Flat風格,你可能會想所有的MouseLeave事件的訂閱方法:

private void All_Button_Hover_MouseLeave(object sender, EventArgs e) 
{ 
    ((Button)sender).FlatStyle = FlatStyle.Flat; 
} 
+0

我實際上沒有其他方法將它們翻轉回原始樣式,我仍然是編程新手。 – taji01

+0

我正在考慮放置一個if-else語句,如'if(Back_button.Hover)'做一些'''Else((Button)sender).FlatStyle = FlatStyle.System; – taji01

+0

不客氣。 :) –