C#里treeview如何向指定NAME节点添加子节点

就是我设定了父节点的Name =1 然后我要向Name = 1的节点添加子节点.
或者是Selected指定Name或Text的节点

新建节点
TreeNode treeNode=new TreeNode();
treeNode.Text=“test";
treeNode.Value="test";
添加节点
TreeView1.Nodes[i].ChildNodes[j].ChildNodes.Add(treeNode);
其中i,j分别代表 根节点和根节点下面的子节点
如果还想继续增加 那么 可以加k,l,M。。。等等
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-02
TreeNode node=treeView1.SelectedNode; //或者其他节点
node.Nodes.Add(new TreeNode("新节点"));追问

又是选取啊,我不能通过选取来创建啊.如果通过选取创建.我也需要指定选取啊!

追答

string name="节点名";
foreach(TreeNode node in TreeView1.Nodes)
{
if(node.Name==name)
node.Nodes.Add(new TreeNode("新节点"));
}
只能通过遍历来找到某个Name的节点。

追问

为啥我这遍历出问题了啊.我在前面添加了父节点.此时有根节点和父节点两个节点,然后紧接着就开始用遍历,调试发现循环的时候node循环2次值都是根节点的值啊,怎么没跳到父节点去啊.

追答

哦。。我写的代码只遍历了父节点,没有遍历所有节点....
需要用递归了。
主函数里:
foreach(TreeNode node in TreeView1.Nodes)
{
if(node.Name==name)
node.Nodes.Add(new TreeNode("新节点"));
addNode(node);
}
然后下面的函数:
void addNode(TreeNode node)
{
foreach(TreeNode n in node.Nodes)
{
if(n.Name==name)
n.Nodes.Add(new TreeNode("新节点"));
addNode(n);
}
}

本回答被提问者和网友采纳
相似回答