在TreeView C#中仅查找子节点

时间:2014-11-01 09:34:21

标签: c# winforms treeview

我有以下树

A
+-B
+-C 
| +-D
| +-E
+-F
  +-G
  +-H

我试图找到B, D, E, G, H。 排除拥有树的节点并保留其子节点。

1 个答案:

答案 0 :(得分:2)

您可以在TreeNodes列表中递归收集子项:

 List<TreeNode> children = new List<TreeNode>();

 foreach(TreeNode node in  TV.Nodes) collectChildren(node);

 void collectChildren(TreeNode node)
 {
    if (node.Nodes.Count == 0) children.Add(node) 
    else  foreach(TreeNode n in node.Nodes) collectChildren(n);
 }