我有这段代码:
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部分中执行此操作,现在只需将其添加到根目录。
答案 0 :(得分:2)
您无法继续将节点添加到同一个父节点,因此请在循环时尝试更新对新父节点的引用:
TreeNode nextNode = rootNode;
for (int i = 0; i < test1.Count; i++) {
newNodeParsed = new TreeNode(test1[i]);
nextNode.Nodes.Add(newNodeParsed);
nextNode = newNodeParsed;
}