- 題名: ListViewのアイテムごとにToolTipを表示する方法
- 日時: 2008/12/05 13:27:09
- ID: 23463
- この記事の返信元:
- (なし)
- この記事への返信:
- [23464] Re[1]: ListViewのアイテムごとにToolTipを表示する方法2008/12/05 13:57:16
- ツリーを表示
とりあえず、サンプルを書いてみました。
参考になれば幸いです。
Dim m_lastsubitem As ListViewItem.ListViewSubItem
' ListView1のViewプロパティがDetailsの場合
Private Sub ListView1_MouseMove(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseMove
' 「Me」は、ListView1を配置したFormオブジェクト
Dim hi As ListViewHitTestInfo = Me.ListView1.HitTest(Me.ListView1.PointToClient(Control.MousePosition))
Dim si As ListViewItem.ListViewSubItem = hi.SubItem
If Me.m_lastsubitem Is si Then Return
If Me.ToolTip1.Active = True Then
Me.ToolTip1.Active = False
End If
If si IsNot Nothing Then
Me.ToolTip1.SetToolTip(Me.ListView1, si.Text)
Me.ToolTip1.Active = True
End If
Me.m_lastsubitem = si
End Sub
質問の意図を取り違え、失礼しました。
ListViewSubItemのTagプロパティを使う方法が考えられます。
以下のコードで試してみてください。
Public Class ListViewToolTipTestForm_ver2
Inherits Form
Dim WithEvents ListView1 As New ListView
Dim ToolTip1 As New ToolTip
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
Me.Text = Me.GetType.Name
With Me.ListView1
.View = View.Details
.Bounds = New Rectangle(100, 100, 300, 300)
.Columns.Add("列1")
.Columns.Add("列2")
.Columns.Add("列3")
Dim lvi As New ListViewItem(New String() {"日本語", "英語", "VisualBasic"})
lvi.SubItems(0).Tag = "こんにちは"
lvi.SubItems(1).Tag = "Hello"
lvi.SubItems(2).Tag = "Hello World!!"
.Items.Add(lvi)
End With
Me.Controls.Add(Me.ListView1)
MyBase.OnLoad(e)
End Sub
Dim m_lastsubitem As ListViewItem.ListViewSubItem
Private Sub ListView1_MouseMove(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseMove
Dim hi As ListViewHitTestInfo = Me.ListView1.HitTest(Me.ListView1.PointToClient(Control.MousePosition))
Dim si As ListViewItem.ListViewSubItem = hi.SubItem
If Me.m_lastsubitem Is si Then Return
If Me.ToolTip1.Active = True Then
Me.ToolTip1.Active = False
End If
If si IsNot Nothing Then
Me.ToolTip1.SetToolTip(Me.ListView1, Me.MyToString(si.Tag))
Me.ToolTip1.Active = True
End If
Me.m_lastsubitem = si
End Sub
Private Function MyToString(ByVal o As Object) As String
If o Is Nothing Then Return ""
Return o.ToString
End Function
End Class
分類:[.NET]
ListViewの各セルにマウスを持ってくると
TolTipを表示するようにしたいのですが
やり方が分かりません。
ListViewのアイテムごとにToolTipを表示する
http://dobon.net/vb/dotnet/control/lvitemtooltip.html
を見たのですが、1カラム(1列)の例で、
MSDNのヘルプを見ても1カラム(1列)の例しか載っていません。
複数列ある場合、それぞれにToolTipを設定する方法が分かりません。
ご教授の程、宜しくお願い致します。