1

我正在显示ToolTip某个按钮的MouseHover事件。如果我在它工作后检查它,但如果我离开,请等待工具提示消失并返回按钮,它会出现两次。我尝试取消它,MouseLeave但它仍然出现第二次时间的两倍。

Private Sub someButton_MouseHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles someButton.MouseHover

   Dim tooltipSearch As New ToolTip()
   tooltipSearch.Show("I'm a tooltip"), someButton)

End Sub

 Private Sub someButton_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles someButton.MouseLeave

    Dim toolTip As New ToolTip()
    toolTip.GetToolTip(someButton)
    toolTip.Hide(someButton)
    toolTip.Dispose()

End Sub

我错过了一些明显的东西吗?

4

3 回答 3

1

您使用的ToolTip不是应该使用的方式(另请查看文档:))。它就像任何其他控件一样,首先将其拖到您的表单上(就像您使用其他控件一样)。

如果您的工具提示中没有要显示的动态文本,您可以使用方法轻松地在构造函数中设置文本SetToolTip。如果您确实想要一些动态文本,您可以在您的MouseHover活动中使用此方法。

除此之外,你不应该做任何其他事情。只需在您的工具提示上设置正确的延迟,它应该可以正常工作。

于 2013-04-24T20:28:22.020 回答
0
Private Sub someButton_MouseHover(sender As Object, e As System.EventArgs) _
                                  Handles someButton.MouseHover
  ToolTip1.SetToolTip(someButton, "My name is Steve chamba from south Africa")
End Sub
于 2013-09-06T13:40:28.007 回答
0

关于将 ToolTip 控件拖到窗体的答案很棒。不过,Button 控件有一个微妙之处。他们似乎会自动将工具提示设置为按钮的文本,因此如果您还调用,ToolTip1.SetToolTip(myButton, "Button Text")那么当您将鼠标悬停在按钮上时,dot-net 会绘制工具提示文本的两个副本。

于 2016-10-14T23:58:54.697 回答