VB.NET - 将项添加到列表视图以及复选框和标记属性

时间:2011-06-14 11:10:46

标签: vb.net listview checkbox

我有这个代码,基本上循环遍历一组文件夹和子文件夹,并找到特定的文件类型。然后在列表视图中列出这些。现在,它旨在列出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)

但应该有一种方法将这两者合并吗?我不确定如何在列表视图的第一列中添加复选框?我已经将listview的Checkbox属性设置为True。但是我可以在这里使用一些指针,如果有人有的话。 :)

1 个答案:

答案 0 :(得分:-1)

嗯,我不太清楚你的问题。如果你已经有了列表框,你只需要使用CheckedListBox并循环执行存储在tag属性中的所有可执行文件......

正如我所说,我不确定如果我明白你的意思......