【发布时间】:2011-09-14 14:46:31
【问题描述】:
我有这段代码,它基本上循环遍历一组文件夹和子文件夹并找到特定的文件类型。然后在列表视图中列出这些。现在,它旨在列出 exe 和 msi 文件。而且我已经做到了,以便在列出这些图标后可以双击它们。我通过在它的标签属性中添加文件的路径来做到这一点。
但是,我的上级希望每个项目旁边都有一个复选框。这样他们就可以检查他们想要安装的每个项目。然后有一个按钮,它一次运行每个标签属性中的路径。这基本上是我用复选框、exe 或 msi 文件的文件名、标签和我想知道的图标填充列表视图的部分。
这是现有代码。这仅包括列表视图的平铺视图。
Public Sub getDirectories(ByVal strFilepath As String, ByVal strFileExtension As String, ByVal objControl As Object)
'Load first files from the root folder. Then loop each subfolder
Dim di As New DirectoryInfo(strFilepath)
Dim aryFi As IO.FileInfo() = di.GetFiles(strFileExtension, SearchOption.AllDirectories)
Dim filePath As String
Dim fileIcon As Icon
' For each file in the root folder
For Each file In aryFi
If file.Extension = String.Empty Then
Else
filePath = GetAssociatedProgram(file.Extension)
On Error Resume Next
'Extract icon
fileIcon = Drawing.Icon.ExtractAssociatedIcon(filePath)
'Add the icon if we haven't got it already
objControl.StateImageList = Form1.iconList
If Form1.iconList.Images.ContainsKey(filePath) Then
Else
Form1.iconList.Images.Add(filePath, fileIcon)
End If
'Add item to list
objControl.items.add(file.Name, filePath).Tag = file.DirectoryName
End If
Next
End Sub
基本上我是这样称呼这个子的:
getDirectories(strProgramLocation, "*.exe", Form1.listViewSupSoftware)
我发现我可以将项目添加到还包含列的列表视图中:
Dim tempstr(2) As String
tempstr(0) = "Name of item"
tempstr(1) = "Target folder of item"
Dim tempNode As ListViewItem
tempNode = New ListViewItem(tempstr)
Form1.listViewItem.Items.Add(tempNode)
但是应该有一种方法可以将这两者结合起来吧?我不确定如何在列表视图的第一列中添加复选框?我已经将列表视图的 Checkbox 属性设置为 True。但如果有人有的话,我可以在这里使用一些指针。 :)
【问题讨论】: