У меня есть этот код, который в основном просматривает набор папок и подпапок и находит определенные типы файлов. И затем перечисляет их в виде списка. Теперь он предназначен для перечисления EXE и MSI-файлов. И я сделал так, чтобы эти значки можно было дважды щелкнуть после их перечисления. Я делаю это, добавляя путь к файлу в свойстве тега.
Но мои начальники хотят поставить флажок рядом с каждым элементом. Так что они могут проверить каждый элемент, который они хотят установить. И затем есть кнопка, которая запускает путь в каждом свойстве тега по одному. По сути, это та часть, где я заполняю просмотр списка флажком, именем файла exe или msi, тегом и значком, который меня интересует.
Это существующий код. Это включает в себя только Tile представление списка просмотра.
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. Но я мог бы использовать некоторые указатели здесь, если у кого-то есть. :)