- PR -

ツリーコントロールのツールチップ

1
投稿者投稿内容
タンク
会議室デビュー日: 2003/02/05
投稿数: 18
お住まい・勤務地: 神戸
投稿日時: 2003-08-07 21:34
VB.NETでウィンドウズアプリケーションを開発しています。

ツリーにぶら下がるノード全てにツールチップを表示させたいのですが、どなたかご存知ないでしょうか?

宜しくお願いします。
なな
ぬし
会議室デビュー日: 2003/06/22
投稿数: 659
お住まい・勤務地: 愛知県
投稿日時: 2003-08-08 08:03
System.Windows.Forms.ToolTip クラスでできませんか?
使い方は、ToolTip クラスの概要にサンプルプログラムが載っています。
タンク
会議室デビュー日: 2003/02/05
投稿数: 18
お住まい・勤務地: 神戸
投稿日時: 2003-08-08 11:27
ななさん回答ありがとうございます。

ToolTipクラスを使用して設定しようとしたのですが、
「型'System.Windows.Forms.TreeNode'の値を
'System.Windows.Forms.Control'に変換出来ません。」
というエラーが出ました。

Button等には設定できるのですが、TreeNodeではエラーが出てしまいます。
TreeNodeでの設定の方法がわかりません

よろしくお願いいたします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-08-08 12:02
こんにちは。

 ToolTipが表示されるイベントを受け、マウスがどこにポイントされているかによってTreeViewコントロールのツールチップを書き換える、、、そうやった記憶があります。
なな
ぬし
会議室デビュー日: 2003/06/22
投稿数: 659
お住まい・勤務地: 愛知県
投稿日時: 2003-08-08 13:07
> Button等には設定できるのですが、TreeNodeではエラーが出てしまいます。

TreeNodeは、System.Windows.Forms.Control を継承していないからですね。
(TreeNodeは、TreeViewに与える情報であって、Formに貼るコントロールではないので。)

Jittaさんの方法でできると思います。
タンク
会議室デビュー日: 2003/02/05
投稿数: 18
お住まい・勤務地: 神戸
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)