■70155 / inTopicNo.4) |
Re[3]: ツールチップの表示時間について |
□投稿者/ an (29回)-(2014/02/26(Wed) 17:32:54)
|
■No70147 (Yoko さん) に返信
> Showメソッドというのがあったので
> ToolTip.Show(Me.TextBox1.Text, Me)
> のようにしてみましたが、コントロール上にポインターがあっても、
> 一定時間経つと非表示になってしまいます。
とのことですので3パターンほど検証してみました。
環境
Win8.1
VB2008
.NET 3.5 SP
フォームに4つのテキストボックスとツールチップを設置し以下のソースを張り付けてみてください。
(各種コントロールのプロパティはデフォルトのままです。)
=============================================
Public Class Form1
Private Sub TextBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.MouseEnter
Me.ToolTip1.Show("あ", TextBox1)
End Sub
Private Sub TextBox1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.MouseLeave
Me.ToolTip1.Hide(TextBox1)
End Sub
Private Sub TextBox2_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.MouseEnter
Me.ToolTip1.Show("いい", TextBox3)
End Sub
Private Sub TextBox2_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.MouseLeave
Me.ToolTip1.Hide(TextBox3)
End Sub
Private Sub TextBox4_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox4.Enter
Me.ToolTip1.Show("ううう", TextBox4)
End Sub
Private Sub TextBox4_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox4.Leave
Me.ToolTip1.Hide(TextBox4)
End Sub
End Class
=============================================
【パターン1】
質問者さんが行ったであろうパターンです。
→確かに自動で消えました。
【パターン2】
ものは試しで、パターン1とほぼ同じですが、
Showメソッドを呼び出す際の第2引数を自分自身じゃないコントロールを指定してみました。
→時間が経っても消えませんでした。
【パターン3】
ものは試しで、パターン1とほぼ同じですが、
呼び出すイベントをMouseEnterイベントではなく、Enterイベントにしてみました。
→Tabキーでフォーカスを当てると表示され、時間が経っても消えませんでした。
直接的な解決にはなりませんが、
逃げ道orヒントには使えないでしょうか?
ちなみにToolTipクラスにはProtectedのStopTimerなるメソッドがあったので、
ToolTipクラスを継承したToolTipExクラスというクラスを作成し、
StopTimerメソッドを呼び出してみたのですが、使い方(呼び出すタイミング等)を間違っているのかよくわかりませんが、
MSDNに載っている動作はしませんでした・・・。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.tooltip.stoptimer(v=vs.90).aspx
参考まで。
|
|