【发布时间】:2010-12-16 12:16:46
【问题描述】:
您好,提前感谢您的帮助。
我有一个从 HDD 文件夹集合填充的树视图。它的结构类似于以下(但结构是动态的):
My Disk:
|
|--folder1(tag:folder)
| |--subfolder1(tag:folder)
|--folder2(tag:folder)
|--folder3(tag:folder)
|--folder4(tag:folder)
|file1(tag:file)
我想从树中删除所有不包含带有“文件”标签的节点的节点(基本上是空文件夹)。我希望生成的树结构如下所示:
My Disk:
|--folder4(tag:folder)
|file1(tag:file)
我想出的最好的如下:
Private Sub deleteNode(byval nc as TreeNodeCollection)
For Each tn As TreeNode In nc
'delete node if it applies
If tn.Tag = "folder" Then
If tn.Nodes.Count = 0 Then
nc.Remove(tn)
End If
End If
If tn.Nodes.Count > 0 Then
deleteNode(tn.Nodes)
End If
Next
End Sub
我将 sub 调用如下:
deleteNode(treeview1.Nodes(0).Nodes)
但是,上述操作无法正常工作。它只删除一些节点,而不是所有目标节点。你能帮我修好我的潜艇吗?
非常感谢
【问题讨论】:
-
作为旁注(我的意见):打开 Option Strict On,它可以为您省去很多麻烦。