タイトルの通りです。環境はVB2005、XPです
ListViewのViewはDetailsです。
FullRowSelectをTrueにしています。(Falseにしても結果は同じ)
行20・列4の表です。
ネットで調べてると以下のような方法で
ダブルクリックした項目の行Indexは取れましたが列Indexがわかりません。
どのようにしたら列のIndexをとれますか?
'マウスダウンの座標をとる
Private Sub ListView1_MouseDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseDown
pt = New Point(e.X, e.Y)
End Sub
'DoubleClickで行列Indexをとる
Private Sub ListView1_DoubleClick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles ListView1.DoubleClick
Dim lv As ListViewItem = ListView1.GetItemAt(pt.X, pt.Y)
'lv.Indexで行のIndexはとれるが列のIndexは取れない??
End Sub
2005ならばListView.HitTestなんか使えそう。(未確認)
[MSDN]ListViewHitTestInfo クラス
http://msdn2.microsoft.com/ja-
jp/library/system.windows.forms.listviewhittestinfo(VS.80).aspx
Blue様
HitTestで出来ました
ありがとうございました。
Dim row, col As Integer
Dim info As ListViewHitTestInfo = ListView1.HitTest(pt)
row = info.Item.Index
col = info.Item.SubItems.IndexOf(info.SubItem)