递归地将ChildNode添加到父节点

时间:2011-09-07 21:59:20

标签: c# .net treeview treenode

我有一个我似乎无法解决的问题。

我正在动态构建TreeView,并且我有一个有序列表。我希望TreeView以这样的方式构建:

  

节点1

     

_Node2

     

__ Node3

     

__ _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);

我已经尝试过使用递归函数,但上面的代码片段是我最好的尝试。

提前致谢。

1 个答案:

答案 0 :(得分: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);
    }