vb 如何获得listview单元格双击事件?

vb 如何获得listview单元格双击事件?
如:
如果点出listview第三行第一列时
msgbox "超级玛丽"

第1个回答  推荐于2016-07-14
Private Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
x As Long
y As Long
End Type

Private Sub Form_Load()
Dim oItem As ListItem
With ListView1
.FullRowSelect = True
.LabelEdit = lvwManual
.View = lvwReport
.ColumnHeaders.Add , , "游戏名称", 100 * Screen.TwipsPerPixelX
.ColumnHeaders.Add , , "出品公司", 100 * Screen.TwipsPerPixelX
.ColumnHeaders.Add , , "存放目录", 100 * Screen.TwipsPerPixelX
Set oItem = .ListItems.Add(, , "星际争霸")
oItem.ListSubItems.Add , , "暴雪公司"
oItem.ListSubItems.Add , , "c:\starcraft\"
Set oItem = .ListItems.Add(, , "魔兽争霸")
oItem.ListSubItems.Add , , "暴雪公司"
oItem.ListSubItems.Add , , "c:\warcraft\"
Set oItem = .ListItems.Add(, , "英雄无敌")
oItem.ListSubItems.Add , , "3DO"
oItem.ListSubItems.Add , , "c:\heroes\"
Set oItem = .ListItems.Add(, , "帝国时代")
oItem.ListSubItems.Add , , "微软"
oItem.ListSubItems.Add , , "c:\aoe\"
End With
End Sub

Private Sub ListView1_DblClick()
Dim p As POINTAPI
Dim oItem As ListItem
GetCursorPos p
ScreenToClient ListView1.hwnd, p
With ListView1
Set oItem = .HitTest(p.x * Screen.TwipsPerPixelX, p.y * Screen.TwipsPerPixelY)
If Not oItem Is Nothing Then
For i = .ColumnHeaders.Count To 1 Step -1
If p.x > .ColumnHeaders(i).Left / Screen.TwipsPerPixelX Then
MsgBox "你点击了第" & oItem.Index & "个列表项的第" & i & "列"
Exit For
End If
Next
End If
End With
End Sub本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网