将节点添加到树视图的问题

Nau*_*sik 5 c# winforms

当我尝试将节点从一个树视图复制到另一个树视图时,我得到一个奇怪的错误:"无法在多个位置添加或插入项目'node1'.您必须先将其从当前位置删除或克隆它.参数名称:节点"搜索了一段时间后,我找不到任何解决方案.我在VB.NET中试过这个并且有相同的错误代码示例:

TreeNode node1 = new TreeNode("node1");
node1.Name = "node1";
treeView1.Nodes.Add(node1);
TreeNode nd = treeView1.Nodes[0];
treeView2.Nodes.Add(nd);
Run Code Online (Sandbox Code Playgroud)

这有什么解决方案吗?


感谢大家!这个现在有效!

Dev*_*erX 5

是的,使用深层复制

TreeNode nd = (TreeNode )treeView1.Nodes[0].Clone();
Run Code Online (Sandbox Code Playgroud)

将您的代码更改为此

TreeNode node1 = new TreeNode("node1");
node1.Name = "node1";
treeView1.Nodes.Add(node1);
TreeNode nd = (TreeNode )treeView1.Nodes[0].Clone(); // clone the object
treeView2.Nodes.Add(nd);
Run Code Online (Sandbox Code Playgroud)