工具提示显示两次

时间:2013-04-24 19:57:36

标签: vb.net winforms tooltip mousehover

我在某个按钮的ToolTip事件中显示MouseHover。如果我一旦它可以工作但是如果我离开,等待工具提示消失并返回按钮,它会出现两次。我尝试在MouseLeave上取消它,但它仍然是seocnd时间的两倍。

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

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

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分: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

答案 2 :(得分:0)

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