2010-08-14 4 views
0

У меня есть несколько кнопок на моем кадре, и я хочу показать, какой из них выбран, показывая цвет фона. Единственная проблема заключается в том, что этот фоновый цвет отображается только при наведении курсора мыши на кнопку, иначе кнопка будет прозрачной белой.Кнопка backcolor теряется, когда мышь не витает над

Переопределение событий MouseEnter и MouseLeave не помогло.

Кнопка наследуется от Standaard Windows Forms Button и имеет следующий метод, чтобы показать, если он выбран:

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.

Очевидно, замените мои жестко закодированные цвета вашими значениями.

Смежные вопросы