В этом случае ваш пользовательский интерфейс реагирует, однако событие MouseHover
возникает только после того, как курсор мыши наведен на элемент управления в течение определенного периода времени (по умолчанию 400 мс), что является причиной задержки.
То, что вы ищете, это MouseEnter
событие , которое возникает, как только курсор вводит («касается») элемент управления:
Private Sub P1_MouseEnter(sender As Object, e As EventArgs) Handles P1.MouseEnter
P1.Visible = False
P2.Visible = True
End Sub
Затем вы можете использовать это вместе с событием MouseLeave
во втором графическом окне, чтобы переключиться обратно на невыделенное изображение:
Private Sub P2_MouseLeave(sender As Object, e As EventArgs) Handles P2.MouseLeave
P1.Visible = True
P2.Visible = False
End Sub
Однако переключение таких графических окон не является оптимальным. Я рекомендую вам посмотреть, как вы можете использовать Ресурсы приложений , а затем изменить свой код так, чтобы переключать только изображение, отображаемое одним графическим блоком.
Вот основные шаги:
Щелкните правой кнопкой мыши свой проект в Solution Explorer и нажмите Свойства .
Выберите вкладку Ресурсы .
Чтобы добавить изображение, либо:
а. Перетащите изображение на панель ресурсов.
б. Нажмите стрелку рядом с кнопкой Добавить ресурс ... и нажмите Добавить существующий файл ... .
Теперь, в вашем коде добавьте это прямо под Public Class Form1
:
Dim ButtonNormal As Image = My.Resources.<first image name>
Dim ButtonHighlighted As Image = My.Resources.<second image name>
Замените <first image name>
и <second image name>
именами изображений ваших кнопок.
Теперь вам нужна только одна графическая рамка для кнопки:
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
P1.Image = ButtonNormal
End Sub
Private Sub P1_MouseEnter(sender As System.Object, e As System.EventArgs) Handles P1.MouseEnter
P1.Image = ButtonHighlighted
End Sub
Private Sub P1_MouseLeave(sender As System.Object, e As System.EventArgs) Handles P1.MouseLeave
P1.Image = ButtonNormal
End Sub