【发布时间】:2017-11-21 09:57:02
【问题描述】:
我已经根据我的数据集构建了一个树形结构。现在我正在尝试使用以下代码在 TreeView 中表示该层次结构。
首先,创建所有根音符:
For Each nodeObject In NodeCollection
If nodeObject.rank = 0 Then
treeUCD.Nodes.Add key:=nodeObject.Name, Text:=nodeObject.Description
End If
Next nodeObject
然后,遍历层次结构的每一层并一次添加一层子级:
For i = 1 To treeHeight
For Each nodeObject In NodeCollection
If nodeObject.rank = i Then
treeUCD.Nodes.Add nodeObject.Parent.Name, tvwChild, _
nodeObject.Name, nodeObject.Description
End If
Next nodeObject
Next I
但是每个节点都被创建为根节点。如何分配孩子?
编辑: 我如何为节点分配等级存在问题。我的递归函数每次都返回 0,尽管单步执行表明它正在正确递增:
Function GetRank(nodeObject As clsNode, ByRef rank As Integer)
If nodeObject.Parent Is Nothing Then
GetRank = rank
Exit Function
End If
GetRank nodeObject.Parent, rank + 1
End Function
编辑 迭代函数现在可以工作了:
GetRank = GetRank(nodeObject.Parent, rank + 1)
但是 treeView 没有显示任何子视图。
【问题讨论】:
-
这是一个 TreeNodeCollection - msdn.microsoft.com/en-us/library/…
-
那么这不完全是
vba相关的问题吗? -
@Vityata 怎么不是vba相关的?
-
@Tomalak - 2 个选项:选项 1 - 它使用外部 .NET 库,它是一个 VB.NET。那么它不是VBA。 2. 它使用外部.NET 库到VBA。那么它就是一个 VBA。
-
我在这个问题的任何地方都看不到 .NET。是什么让您想到 .NET?