2010-08-14 126 views
0

我的框架上有許多按鈕,我想通過顯示背景顏色來顯示選擇哪一個按鈕。唯一的問題是,只有當鼠標懸停在按鈕上時,纔會顯示此背景顏色,否則該按鈕將變爲白色。當鼠標沒有懸停時,按鈕背景顏色丟失

重寫MouseEnter和MouseLeave事件並沒有幫助。

按鈕從標準報Windows窗體按鈕,並具有以下方法來顯示繼承的,如果它的選擇:

public void SetFocus(bool focused) 
{ 
    if (focused) 
     this.BackColor = SelectColor; 
    else this.BackColor = color; 
} 

的SelectColor是一個靜態的黃色(指示按鈕被選中),顏色爲存儲在類中的私有顏色保持按鈕在未被選中時的顏色。

有誰知道如何顯示背景顏色,即使沒有懸停在按鈕上?

回答

0

創建從Button派生新類:

class MyButton : Button 
{ 
    public MyButton() : base() 
    { 
     this.BackColor = System.Drawing.Color.AntiqueWhite; 
    } 

    protected override void OnMouseEnter(EventArgs e) 
    { 
     this.BackColor = System.Drawing.Color.Blue; 
     base.OnEnter(e); 
    } 

    protected override void OnMouseLeave(EventArgs e) 
    { 
     this.BackColor = System.Drawing.Color.AntiqueWhite; 
     base.OnLeave(e); 
    } 
} 

,然後使用上的形式對我的作品。您必須以編程方式添加按鈕或編輯.designer.cs文件。

顯然用你的值替換我的硬編碼顏色。