- - PR -
ツリーコントロールのツールチップ
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-08-07 21:34
VB.NETでウィンドウズアプリケーションを開発しています。
ツリーにぶら下がるノード全てにツールチップを表示させたいのですが、どなたかご存知ないでしょうか? 宜しくお願いします。 |
|
投稿日時: 2003-08-08 08:03
System.Windows.Forms.ToolTip クラスでできませんか?
使い方は、ToolTip クラスの概要にサンプルプログラムが載っています。 |
|
投稿日時: 2003-08-08 11:27
ななさん回答ありがとうございます。
ToolTipクラスを使用して設定しようとしたのですが、 「型'System.Windows.Forms.TreeNode'の値を 'System.Windows.Forms.Control'に変換出来ません。」 というエラーが出ました。 Button等には設定できるのですが、TreeNodeではエラーが出てしまいます。 TreeNodeでの設定の方法がわかりません よろしくお願いいたします。 |
|
投稿日時: 2003-08-08 12:02
こんにちは。
ToolTipが表示されるイベントを受け、マウスがどこにポイントされているかによってTreeViewコントロールのツールチップを書き換える、、、そうやった記憶があります。 |
|
投稿日時: 2003-08-08 13:07
> Button等には設定できるのですが、TreeNodeではエラーが出てしまいます。
TreeNodeは、System.Windows.Forms.Control を継承していないからですね。 (TreeNodeは、TreeViewに与える情報であって、Formに貼るコントロールではないので。) Jittaさんの方法でできると思います。 |
|
投稿日時: 2003-08-08 15:24
ななさん、Jittaさん回答ありがとうございました。
いろいろ探した結果、以下の方法で実現できました。 Private oldNodeIndex As Integer = - 1 Private toolTip1 As ToolTip Private Sub Form1_Load(sender As Object, e As System.EventArgs) Me.toolTip1 = New System.Windows.Forms.ToolTip() Me.toolTip1.InitialDelay = 300 'half a second delay Me.toolTip1.ReshowDelay = 0 End Sub 'Form1_Load Private Sub treeView1_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Dim tn As TreeNode = Me.treeView1.GetNodeAt(e.X, e.Y) If Not (tn Is Nothing) Then Dim currentNodeIndex As Integer = tn.Index If currentNodeIndex <> oldNodeIndex Then oldNodeIndex = currentNodeIndex If Not (Me.toolTip1 Is Nothing) And Me.toolTip1.Active Then Me.toolTip1.Active = False 'turn it off End If Me.toolTip1.SetToolTip(Me.treeView1, String.Format("tooltip: node {0}", oldNodeIndex)) Me.toolTip1.Active = True 'make it active so it can show End If End If End Sub 'treeView1_MouseMove |
1