我在一个表单上有一个treeview控件,该控件填充了许多父分支。每个父分支都包含许多子分支和孙子分支。每个节点都有一个复选框,用户可以选中或取消选中。我想做的是隐藏未选中的主父分支,从而隐藏它们下面的所有分支。相反,如果未选中任何内容,则所有分支都应可见(或启用)
我一直在考虑获取一个对我要从树中删除的所有根节点的引用,并将它们存储在一个集合中。然后,我可以使用该集合用“隐藏”的树枝重新填充树
- Dim i As Long, upper As Long
- Dim rootNodes As New Collection
- Dim myNode As MSComctlLib.Node
- upper = tvHoles.Nodes.Count
- For i = 1 To upper
- Set myNode = tvHoles.Nodes.Item(i)
- If myNode.Tag = "Root" Then
- rootNodes.Add myNode
- End If
- Next
- If rootNodes.Count > 0 Then
- Set myNode = rootNodes.Item(1)
- tvHoles.Nodes.Remove myNode.Index
- msgbox myNode.tag
- End If
上面的代码片段成功地获取了对树视图中第一个根节点的引用,然后将其从树视图中删除。myNode对象似乎保留了对其在树中时拥有的所有内容的引用,包括其子对象。我似乎无法找到将myNode对象添加回树的方法。如果您能帮助实现此功能,甚至只是禁用节点,我们将不胜感激。
本帖以下内容被隐藏保护;需要你回复后,才能看到! 游客,如果您要查看本帖隐藏内容请 回复 |