Как обрабатывать события MouseHover и MouseLeave в IconButton VB. NET WinForm - PullRequest
0 голосов
/ 31 марта 2020

У меня есть VB. NET WinForm с кнопкой Home ( btnHome ) внутри него.

Как обрабатывать MouseHover и MouseLeave событий в FontAwesome IconButton?

Я попробовал следующее, но это не сработало:

    Private Sub btnHome_MouseHover(sender As Object, e As EventArgs) Handles btnHome.MouseHover
        Me.btnHome.BackColor = Color.Black
    End Sub

    Private Sub btnHome_MouseLeave(sender As Object, e As EventArgs) Handles btnHome.MouseLeave
        Me.btnHome.BackColor = Color.Transparent
    End Sub

Переход на светлый цвет появляется на кнопке до достижения черного цвета.

С другой стороны, предыдущий код работал для обычной Windows кнопки формы из панели инструментов.

Я тоже безуспешно пробовал другие два события:

  • Введите
  • Переместить

Что я делаю не так?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

«Прозрачный официально не поддерживается как цвет фона в кнопках» из ответа Кима помог мне прийти к этому вопросу: Как сделать фон кнопки прозрачным? .

Оттуда мне удалось решить это следующим образом:

        With btnHome.FlatAppearance
            .MouseOverBackColor = Color.FromArgb(125, RGBColors.color1)
            .MouseDownBackColor = Color.Transparent
        End With

FlatAppearance было свойство, которое я искал.

Спасибо всем.

0 голосов
/ 31 марта 2020

Это работает для меня в C#. Обратите внимание, что прозрачность официально не поддерживается как цвет фона в кнопках. Другие цвета будут работать, однако (я использовал зеленый). Вы также должны установить BackColor таким же, как в событии MouseLeave в конструкторе после строки InitializeComponent ().

private void btnHome_MouseEnter(object sender, EventArgs e)
{
    btnHome.BackColor = Color.Black;
}

private void btnHome_MouseLeave(object sender, EventArgs e)
{
    btnHome.BackColor = Color.Green;
}
...