vb给listview 编写双击事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb给listview 编写双击事件相关的知识,希望对你有一定的参考价值。

Private Sub Label1_Click(Index As Integer)
Select Case Index
Case 0

Picture1.Picture = LoadPicture("")
a = ExtractIcon(App.hInstance, "D:\盛大网络\冒险岛online\maplestory.exe", 0)
a = DrawIcon(Picture1.hdc, 0, 0, a)
ImageList1.ListImages.Add 1, , Picture1.Image
ListView1.Icons = ImageList1
ListView1.ListItems.Add 1, , "冒险岛online", 1
'=======================分隔线=========================
Picture1.Picture = LoadPicture("")
a = ExtractIcon(App.hInstance, "D:\ZSNESW\运行游戏.exe", 0)
a = DrawIcon(Picture1.hdc, 0, 0, a)
ImageList1.ListImages.Add 2, , Picture1.Image
ListView1.ListItems.Add 2, , "超级玛丽", 2
'=======================分隔线=========================
Picture1.Picture = LoadPicture("")
a = ExtractIcon(App.hInstance, "D:\机械迷城\machinarium.exe", 0)
a = DrawIcon(Picture1.hdc, 0, 0, a)
ImageList1.ListImages.Add 3, , Picture1.Image
ListView1.ListItems.Add 3, , "机械迷城", 3
'=======================分隔线=========================
Picture1.Picture = LoadPicture("")
a = ExtractIcon(App.hInstance, "D:\Plants vs. Zombies\PlantsVsZombies.exe", 0)
a = DrawIcon(Picture1.hdc, 0, 0, a)
ImageList1.ListImages.Add 4, , Picture1.Image
ListView1.ListItems.Add 4, , "植物大战僵尸", 4
'=======================分隔线=========================
Picture1.Picture = LoadPicture("")
a = ExtractIcon(App.hInstance, "D:\Ballance\Startup.exe", 0)
a = DrawIcon(Picture1.hdc, 0, 0, a)
ImageList1.ListImages.Add 5, , Picture1.Image
ListView1.ListItems.Add 5, , "平衡球", 5
'=======================分隔线=========================
Picture1.Picture = LoadPicture("")
a = ExtractIcon(App.hInstance, "D:\新建文件夹\World of Goo V1.4\WorldOfGoo.exe", 0)
a = DrawIcon(Picture1.hdc, 0, 0, a)
ImageList1.ListImages.Add 6, , Picture1.Image
ListView1.ListItems.Add 6, , "粘粘世界", 6
End Select
End Sub
然后运行以后是这样
如何实现在 双击冒险岛那个图标时 运行冒险岛
双击其他图标 运行其他游戏

Private
Sub
ListView1_dblclick()
if
ListView1.SelectedItem.Text
="冒险岛online",
"
End
Sub
Private
Sub
ListView1_dblclick()
If
ListView1.SelectedItem.Text
=
"冒险岛online"
Then
Shell
"D:\盛大网络\冒险岛online\maplestory.exe"
If
ListView1.SelectedItem.Text
=
"超级玛丽"
Then
Shell
"D:\ZSNESW\运行游戏.exe"
If
ListView1.SelectedItem.Text
=
"机械迷城"
Then
Shell
"D:\机械迷城\machinarium.exe"
If
ListView1.SelectedItem.Text
=
"植物大战僵尸"
Then
Shell
"D:\Plants
vs.
Zombies\PlantsVsZombies.exe"
If
ListView1.SelectedItem.Text
=
"平衡球"
Then
Shell
"D:\Ballance\Startup.exe"
If
ListView1.SelectedItem.Text
=
"粘粘世界"
Then
Shell
"D:\新建文件夹\World
of
Goo
V1.4\WorldOfGoo.exe"
End
Sub
参考技术A 你的加载item的过程太累赘。不习惯用循环?那你要加载更多的item怎么办?
建议你将信息存在文件或注册表中,然后用个循环读取并加载。这样以后也好修改。

帮你修改了下,将路径按以下格式存为txt文件。

冒险岛online
D:\盛大网络\冒险岛online\maplestory.exe
超级玛丽
D:\ZSNESW\运行游戏.exe
机械迷城
D:\机械迷城\machinarium.exe
植物大战僵尸
D:\Plants vs. Zombies\PlantsVsZombies.exe
平衡球
D:\Ballance\Startup.exe
粘粘世界
D:\新建文件夹\World of Goo V1.4\WorldOfGoo.exe

Private Sub Label1_Click(Index As Integer)
Select Case Index
Case 0
LoadData ("Games.txt")
Case 1
LoadData ("Tools.txt")
Case 2
...
End Select
End Sub

Private Sub LoadData(TxtFile As String)
Dim str As String, Data() As String
Dim Names() As String, Paths() As String
Dim i As Long, k As Long

'打开文件,读取内容
Open TxtFile For Binary As #1
str = Input(LOF(1), #1)
Close #1

Data() = Split(str, vbCrLf)
ReDim Names(0 To Int(UBound(Data) / 2))
ReDim Paths(0 To Int(UBound(Data) / 2))

k = 0
For i = 0 To UBound(Data) Step 2
'确保不为空
If Len(Data(i)) <> 0 And Len(Data(i + 1)) <> 0 Then
Names(k) = Data(i)
Paths(k) = Data(i + 1)

'添加图标
Dim a
Picture1.Picture = LoadPicture("")
a = ExtractIcon(App.hInstance, Paths(k), 0)
a = DrawIcon(Picture1.hdc, 0, 0, a)
ImageList1.ListImages.Add , , Picture1.Image

'添加项目,利用key属性储存路径数据
ListView1.ListItems.Add , Paths(k), Names(k), k + 1

k = k + 1

End If
Next i
End Sub

'双击
Private Sub ListView1_DblClick()
'判断是否点击到item
If Not ListView1.SelectedItem Is Nothing Then
Shell ListView1.SelectedItem.Key
End If
End Sub

'为了让Listview在没点到item时失去焦点
'否则点空白时selectitem不为空
Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Not ListView1.HitTest(x, y) Is ListView1.SelectedItem Then
Set ListView1.SelectedItem = Nothing
End If
End Sub本回答被提问者采纳
参考技术B 关注

vb中控件listview的详细使用

包括分列显示查询信息.
单击查到的文件可以,双击执行.
在listview中显示查询文件的图标,并显示文件的大小,创建时间.

1、首先,点击文件->新建->项目,打开项目创建视窗,切换到Visual Basic,选择Windows窗体应用程序,新建一个。

2、在左侧工具箱中找到ListView控件,单击并在右侧窗体中创建一个。

3、点击ListView控件右上角的小按钮,展开ListView任务面板,点击编辑项,打开ListViewItem集合编辑器。

4、新建一个按钮,在按钮的事件响应函数中写下MsgBox(ListView1.ToString()),ListView的ToString函数返回的是这个控件的信息,如图。

5、如果要获取所有item的信息,使用For Each循环遍历item如下。

6、这样把每个列表元素的ToString等信息存到tps字符串,显示出来如图。

参考技术A 什么是ListView控件
VB高级控件,高级之处在于它使用了对象的方式组织内容。
要使用ListView控件,需要加入组件:
Microsoft Windows Common Controls 6.0
Windows资源管理器的右半部分,就是一个ListView控件。

作用
列出并列关系的对象及对象属性。

ListView控件的对象层次结构
ListView -整个控件
ColumnHeaders -标题行
ColumnHeader -标题列
ListItems -对象行集合
ListItem -对象行
ListSubItems -对象属性集合
ListSubItem -对象属性
注意:SubItems和ListSubItems的区别:SubItems是一个String数组;ListSubItems是一个集合。

属性
View:设置ListView的外观
Sorted:设置ListView中的对象集合是否排序。
SortKey:设置以第几项排序。从零开始。
SelectedItem:返回选中的对象的引用。

事件
AfterLabelEdit:编辑ListItem对象的标签时被触发。
BeforeLabelEdit:编辑ListItem对象的标签后出发。
ColumnClick:单击列标题时触发。参数中可以获得被单击的列对象。通常用于排序。
ItemClick:单击某行或某ListItem时触发。参数中可以获得被单击的ListItem对象。

方法
FindItem:搜索ListItem对象。
参数:
string:搜索字符串。
value:在ListItem的哪部分中搜索(LvwText、LvwSubItem、LvwTag);index:开始搜索的位置。
match:匹配方式。
HitTest:检索位于特定坐标处的ListItem对象。本回答被提问者采纳

以上是关于vb给listview 编写双击事件的主要内容,如果未能解决你的问题,请参考以下文章

在vb net中,如何猎取和修改已选定的某一项的值?

vb中控件listview的详细使用

vb.net如何在listbox中增加双击事件?

c# 如何双击listview 的项可变成编辑状态?

双击导航栏自动滑动ListView到顶部

怎么给wpf添加一个窗体加载事件