【问题标题】:count the number of nodes in a specific level in treeview计算树视图中特定级别的节点数
【发布时间】:2015-02-13 00:24:36
【问题描述】:

我正在使用树视图控件并尝试计算特定级别中的节点数。例如,假设我有一个像这样的树视图

Lvl1  Lvl2    Lvl3
------------------------
Node1
     -n1c1
          -another child
     -n1c2
     -n1c3
          -another child
          -another child

Node2
     -n2c1
          -another child
          -another child
     -n2c2
          -another child

所以在 lvl1 中,我会得到 2 的计数,在 lvl2 中得到 5 的计数,在 lvl3 中得到 6 的计数

节点有这样的键:

gmNode.Key = rs.Fields(0).Value & "_" & "0" & "_0"

其中键的第二个和第三个位置(由 _ 分隔)表示其所在的级别,以及该级别中的节点位置。

我做过这样的事情:

Dim gmNode as Node
Dim node   as TreeNode
Dim count  as Integer

For each node in gmNode.key (asdf_0_0)
      count += 1
Next

但这仅给了我特定父母的孩子人数。我正在寻找整个级别的计数。

【问题讨论】:

  • 你需要使用递归来解决这些问题,因为你不知道你有多少级别。
  • Jeanno,我对此很陌生,你能帮我解决递归问题吗,我猜它首先意味着什么?抱歉,如果这是个愚蠢的问题,但我对此并不熟悉:-)
  • 请检查此链接以了解递归,我希望能帮助您更多,但我对树节点不是很熟悉。我有一个问题要问你是否有可能找出你有多少级别?

标签: ms-access treeview vba


【解决方案1】:

我认为这对你有用

Function CountChildren(tree As treenode) As Long
    CountChildren = 0
    For i = 1 To tree.Nodes.Count
        CountChildren = CountChildren + tree.Nodes(i).Children
    Next i
End Function

【讨论】:

  • Hey Jeanno,我认为如果您想计算树中的所有节点,但不仅仅是特定级别的节点,这很有效,对吧?
  • 我以为你想做的事,把所有级别的孩子都数一遍
猜你喜欢
  • 2012-10-04
  • 2020-08-07
  • 1970-01-01
  • 1970-01-01
  • 2012-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多