Цвет кнопки теряется, когда мышь не наведена - PullRequest
0 голосов
/ 15 августа 2010

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

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

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

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

SelectColor - это статический желтый цвет (для обозначения выбора кнопки), а цвет - это закрытый цвет, сохраненный в классе, который содержит цвет кнопки, когда она не выбрана.

Кто-нибудь знает, как показать цвет фона, даже если не зависать над кнопкой?

1 Ответ

0 голосов
/ 15 августа 2010

Создание нового класса, производного от 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.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...