日期:2014-05-17  浏览次数:20903 次

刚学习C#:如何动态添加TreeView子节点,有点伸手党了。。。
问题:现有一有序的string类型数据,例如 aaa bbb ccc ddd eee......
某一treeview已存在根节点,需要将上面的aaa bbb ccc ddd eee......按顺序添加为子节点(不是同一级的,bbb是aaa的子节点、ccc是bbb的子节点,以此类推)

我试了试:string数据的个数是可以确定的,添加采用:
TreeNode tn = new TreeNode();
tn.Text = "string的名字";
根节点.Nodes.Add(tn); //可实现添加第二级

但是再往后就不知道如何添加后面几级的子节点了,因为不知道如何获取前一级的子节点,也就是XXX.Nodes.Add(新添加的子节点) 这里的XXX不知道如何表示?而且如果采用循环的话,每次都要用
TreeNode xx = new TreeNode() //创建新的TreeNode,这样会重复吧。。。

有个treeView.Nodes[0].Nodes[0].Nodes[0]......可以按顺序获取特定子节点,但是这样该取多少次呢?
我C#的确是刚接触,不知道问题陈述的清不清楚。求教各位前辈,不知道有什么好思路?谢谢!

------解决方案--------------------
string[] s = new string[] { "aaa", "bbb", "ccc", "ddd", "eee" };
treeView1.Nodes.Add(s[0]);
TreeNode tn = treeView1.Nodes[0];
foreach (var item in s.Skip(1))
{
    tn.Nodes.Add(item);
    tn = tn.Nodes[0];
}
------解决方案--------------------
string[] s = new string[] { "aaa", "bbb", "ccc", "ddd", "eee" };
treeView1.Nodes.Add(s[0]);
TreeNode tn = treeView1.Nodes[0];
foreach (var item in s.Skip(1))
{
    tn = tn.Nodes.Add(item);
}

偷个懒改一下,错了也是1楼的。意思是Nodes.Add返回的就是添加的节点。