【问题标题】:If mouse is clicked then don't execute mouse leave event如果单击鼠标,则不执行鼠标离开事件
【发布时间】:2018-03-22 21:12:18
【问题描述】:

您好,我想显示一个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

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    您可以在点击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
    

    【讨论】:

      猜你喜欢
      • 2021-05-17
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-04
      • 2014-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多