如果单击鼠标,则不执行鼠标离开事件



嗨,我想显示一个提示Label,所以如果鼠标悬停,则显示Label,鼠标离开然后隐藏Label。但是,如果鼠标单击则显示标签并且不执行离开事件,因为离开事件意味着隐藏鼠标。那么我该如何执行呢?我的代码在这里。

点击事件

Private Sub Label2_Click(sender As Object, e As EventArgs) Handles Label2.Click
    control("set")
End Sub

悬停事件

Private Sub Label2_MouseHover(sender As Object, e As EventArgs) Handles Label2.MouseHover
    control("show")
End Sub

休假事件

Private Sub Label2_MouseLeave(sender As Object, e As EventArgs) Handles Label2.MouseLeave
    control("remove")
End Sub

控制子

Public Sub control(ByVal c As String)
    If c = "set" Then
        Label3.Visible = True
    ElseIf c = "show" Then
        Label3.Visible = True
    ElseIf c = "remove" Then
        Label3.Visible = False
    End If 
End Sub

您可以在单击Label2时删除EventHandler

Private Sub Label2_Click(sender As Object, e As EventArgs) Handles Label2.Click
    RemoveHandler Label2.MouseLeave, AddressOf Label2_MouseLeave
End Sub

不确定control方法的目的是什么...但是代码可以简化为:

Private Sub Label2_Click(sender As Object, e As EventArgs) Handles Label2.Click
    RemoveHandler Label2.MouseLeave, AddressOf Label2_MouseLeave
End Sub
Private Sub Label2_MouseHover(sender As Object, e As EventArgs) Handles Label2.MouseHover
    Label3.Visible = True
End Sub
Private Sub Label2_MouseLeave(sender As Object, e As EventArgs) Handles Label2.MouseLeave
    Label3.Visible = False
End Sub

最新更新