2013-01-10 171 views
2

我有一個面板控制,它有一個背景圖片。我希望它改變不透明度,我將鼠標移到它上面。我怎樣才能做到這一點?我嘗試過:使面板控制透明

btnExit.BackColor = Color.FromArgb(20,63,63,63); 
    btnExit.BackColor = Color.FromArgb(20); 

但沒有任何變化..任何想法,爲什麼這是行不通的?這個小組坐在另一個面板上,它也有背景圖片。謝謝!

+0

如果你打算減少提供一個理由(評論)>我反擊懦弱的下跌。 – FrostyFire

+0

我下降了什麼? o_0 – Kristian

+0

那麼,你希望整個控件是半透明的嗎? –

回答

1

據我所知,可以用你的方法完成,但我想你必須刷新控件。

btnExit.Refresh(); 

編輯:

首先設置你的按鈕FlatStyle to Flat

this.btnExit.FlatStyle = System.Windows.Forms.FlatStyle.Flat; 

然後讓兩個函數btnExit_MouseHover和btnExit_MouseLeave:

void btnExit_MouseHover(object sender, EventArgs e) 
{ 
    btnExit.BackColor = Color.FromArgb(20, 63, 63, 63); 
    btnExit.Refresh(); 
} 

void btnExit_MouseLeave(object sender, EventArgs e) 
{ 
    btnExit.BackColor = Color.FromArgb(100, 63, 63, 63); 
    btnExit.Refresh(); 
} 

要激活這些功能添加兩個事件處理:

btnExit.MouseHover += new EventHandler(btnExit_MouseHover); 
btnExit.MouseLeave += new EventHandler(btnExit_MouseLeave); 

這將這樣的伎倆,現在你只需要改變背景顏色爲你喜歡的顏色)。

+0

謝謝!面板控制沒有平整的外觀,所以我試圖用普通按鈕與圖像和麪板與圖像。常規按鈕只是改變了背景顏色,並且面板閃爍了一秒鐘,就好像它即將起作用,但重置會恢復。我爲mousehover和leave設置了不透明度爲100,但同樣的事情發生。有小費嗎?謝謝! – Kristian

+0

我想當你停用MouseLeave事件處理程序時,它會對問題進行排序。或者在mouseHover中設置if語句/開關,並在MouseLeave中重置該var – Quispie