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

本文关键字:节点 子节点 添加 字符串 | 更新日期: 2023-09-27 18:35:13

我有这个代码:

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) 中字符串 i 类型不包含任何 '/',则新节点将添加到 treeView1 中的根下。

但是如果我输入文本框(txtDir),例如test1/test2/test3/test4然后我需要 test1 将在根节点下的根下,但 test2 将在 test1 内,test3 在 test2 内,test4 在 test3 内

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

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

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

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

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