2010-12-08 113 views
0

我可以将节点添加到树视图添加方法。但我想将节点添加到特定的子节点。 例如要添加一个节点到节点5将节点添加到特定的子节点

|___node0 
|___node1  
|  |___node3 
|  |___node4 
|   |___node5 
|___node2 

我怎么能做到这一点? 谢谢。

回答

1

基本递归树结点搜索,顶部的我头。如果您只需要按键搜索,weismat的答案是最简单的,但是如果您需要通过节点上的数据进行搜索,则应该考虑此解决方案,因为您可以用任何可能想查找的名称替换名称搜索。

private TreeNode FindNode(TreeNode root, String name) 
{ 
    foreach (TreeNode node in root.Nodes) 
    { 
     if (node.Nodes.Count > 0) 
      return FindNode(root, name); 
     if (node.Name == name) 
      return node; 
    } 
    return null; 
} 
+0

我不明白。我怎么用这个方法?这个方法给我什么?请帮我细节。谢谢。 – Tavousi 2010-12-08 16:13:17

4
TreeNode[] tn = treeView.Nodes[0].Nodes.Find(search.Text, true); 
if (tn.Count>0) 
    tn[0].Add(nod); 
else 
    //handle node not found 
3

如果您有子节点的参考,你可以简单地访问它的节点集合,并添加新的子进入其收集如下图所示

node5.Nodes.Add(New TreeNode("temp")); 
0

威廉是正确的,但方法应该是这样的:

private TreeNode FindNode(TreeNode root, String name) 
     { 
      foreach (TreeNode node in root.Nodes) 
      { 
       if (node.Name == name) 
        return node; 
       else 
       { 
        if (node.Nodes.Count > 0) 
         return FindNode(node, name); 
       } 
      } 
      return null; 
     } 

试用了工作得很好,

干杯!