2013-04-24 158 views
1

我在某個按鈕的MouseHover事件中顯示ToolTip。如果我一旦工作就重新開始工作,但如果我離開,請等待工具提示消失並返回按鈕,它會顯示兩次。我試着在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 

我是否缺少明顯的東西?

+0

您正在以錯誤的方式使用工具提示。您應該再次閱讀[documentation](http://msdn.microsoft.com/en-us/library/system.windows.forms.tooltip.aspx);)。我也建議你只需拖動窗體上的工具提示,就像其他任何控件一樣。 – Styxxy 2013-04-24 20:18:31

+0

Oooh我總是這樣使用它...我應該閱讀文檔。 – phadaphunk 2013-04-24 20:19:35

+1

@Styxxy我拖動它像另一個控件,它現在可以工作..你可以制定和回答並解釋我不應該使用這樣的工具提示,所以我可以接受它。謝謝 – phadaphunk 2013-04-24 20:23:44

回答

1

您正在使用ToolTip而不是它應該使用的方式(也請參閱documentation :))。它就像任何其他控件一樣,首先將它拖放到窗體上(就像使用其他控件一樣)。

如果您的工具提示中沒有顯示動態文本,則可以使用方法SetToolTip輕鬆設置構造函數中的文本。如果您確實需要一些動態文本,則可以在您的MouseHover事件中使用此方法。

除此之外,你不應該做任何事情。只需在你的工具提示中設置正確的延遲,它應該工作得很好。

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 
+0

嗨史蒂夫,歡迎來到堆棧溢出。如果你可以提供更多的細節來說明它的工作原理 - 這有助於其他人弄清楚出了什麼問題,怎麼不去做某件事。你可以這樣做嗎?謝謝! – 2013-09-06 13:57:13

0

有關將ToolTip控件拖到窗體的答案很好。儘管按鈕控件有一個微妙之處。他們似乎自動將工具提示設置爲按鈕的文本,因此如果您還調用ToolTip1.SetToolTip(myButton, "Button Text"),則當您將鼠標懸停在按鈕上時,網點會繪製工具提示文本的兩個副本。