2011-09-07 45 views
1

我有一个问题,我似乎无法解决。递归添加一个ChildNode到父节点

我正在动态构建TreeView,并且我有一个有序列表。我希望树视图建立在这样一种方式:

节点1

_Node2

__节点3

__ _Node..N

我的代码如下:

 TreeNode tn = new TreeNode(); 

     for (int i = 0; i < EmployeesReportingLine.Count; i++) 
     { 
      Employee ep = EmployeesReportingLine[i]; 

      while (tn.ChildNodes.Count > 0) 
       tn = tn.ChildNodes[0]; 

      TreeNode temp = new TreeNode(ep.FullName); 
      if (i > 0) 
       tn.ChildNodes.Add(temp); 
      else 
       tn = temp; 
     } 

     TreeView1.Nodes.Add(tn); 

我做了几个其他的尝试,使用递归函数,但上面的代码片段是我最好的尝试。

在此先感谢。

回答

2
private void addNode(TreeNodeCollection nodes, TreeNode newnode) { 
     if (nodes.Count == 0) nodes.Add(newnode); 
     else addNode(nodes[0].Nodes, newnode); 
    } 

或者:

private void addNode2(TreeNode start, TreeNode newnode) { 
     if (start.Nodes.Count == 0) start.Nodes.Add(newnode); 
     else addNode2(start.Nodes[0], newnode); 
    } 
+0

感谢,它的工作完美。 – Seany84