我想创建一个简单的打印机管理器以在我们的终端服务器环境中使用。由于 GPO 的限制,我可以使用的内置功能受到限制。所以我决定尝试编写自己的简单 GUI 来做到这一点。
现在,打印机分布在一个文件夹中,并带有用于对它们进行分类的子文件夹。在每个文件夹中,打印服务器上的实际打印机都有 .lnk 文件。
我想要做的是根据在树视图上单击的项目,在列表视图中填充文件夹和打印机的树视图。
我已经设法搜索目录并搜索我单击的每个项目的文件。但我意识到,为什么不在表单启动期间使用集合或类似的东西呢?这样,它会更快。因为现在,每次单击树视图中的项目时都会有一点延迟。因为它每次都会扫描文件。
如何将其添加到集合中并改用它?
这是我当前的代码:
Public Sub populateTreeView(ByVal strPath As String)
Dim di As New IO.DirectoryInfo(strPath)
Dim diar1 As IO.DirectoryInfo() = di.GetDirectories()
Dim dra As IO.DirectoryInfo
For Each dra In diar1
ImageList1.Images.Add(GetSmallIcon(dra.FullName))
TreeView1.Nodes.Add("", dra.Name, nIndex)
nIndex = nIndex + 1
Next
End Sub
Private Sub TreeView1_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeView1.AfterSelect
ListView1.Clear()
nIndex = 0
Dim di As New IO.DirectoryInfo(strIniSettings & "\" & TreeView1.SelectedNode.Text)
Dim diar1 As IO.FileInfo() = di.GetFiles()
Dim dra As IO.FileInfo
For Each dra In diar1
Dim strName As String
strName = Replace(dra.Name, ".lnk", "")
ImageList2.Images.Add(GetLargeIcon(dra.FullName))
ListView1.Items.Add("", strName, nIndex)
nIndex = nIndex + 1
Next
End Sub
注意图像列表?我也得到了每个项目的图标。