如何将字符串添加到节点内的子节点?

时间:2014-12-23 23:30:07

标签: c# .net winforms treeview

我有这段代码:

TreeNode newNodeText = null;
TreeNode newNodeParsed = null;
TreeNode rootNode = treeView1.Nodes[0];

if (!txtDir.Text.Contains("/"))
{
    newNodeText = new TreeNode(txtDir.Text);
    rootNode.Nodes.Add(newNodeText);
}
else
{
    List<string> test1 = txtDir.Text.Split('/').ToList();
    for (int i = 0; i < test1.Count; i++)
    {
        newNodeParsed = new TreeNode(test1[i]);
        rootNode.Nodes.Add(newNodeParsed);
    }                       
}

如果在textBox(txtDir)中输入的字符串不包含任何'/',则新节点将添加到treeView1的根目录下。

但是如果我输入textBox(txtDir),例如test1 / test2 / test3 / test4 然后我需要test1将在rootNode下根,但test2将在test1内部,test3在test2内部,test4在test3内部

里面我的意思是像子目录一样。

我需要在else部分中执行此操作,现在只需将其添加到根目录。

1 个答案:

答案 0 :(得分:2)

您无法继续将节点添加到同一个父节点,因此请在循环时尝试更新对新父节点的引用:

TreeNode nextNode = rootNode;
for (int i = 0; i < test1.Count; i++) {
  newNodeParsed = new TreeNode(test1[i]);
  nextNode.Nodes.Add(newNodeParsed);
  nextNode = newNodeParsed;
}