我想创建一个简单的打印机管理器来在我们的终端服务器环境中使用。由于GPO限制,我可以使用的内置功能有限制。所以我决定尝试写我自己的简单GUI来做到这一点。VB.NET +将文件夹添加到树视图和文件到列表视图
现在,打印机分布在一个文件夹中,用子文件夹对它们进行分类。在每个文件夹中,打印服务器上的实际打印机都有.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
通知的图像列表?我也为每个项目获取图标。
这将做到这一点!谢谢! :)虽然我不得不对代码做一些更改,但我不想像这样在动态创建控件。但这只是一个小任务:) –