C# 树视图节点的深度复制

C# 树视图节点的深度复制,c#,C#,我正在尝试将treeview节点复制到treenodecollection以进行其他处理。当我执行下一行中的treeview.nodes.clear()时,我的treenodecollection将变为null。您能告诉我如何将treeview节点复制到treenodecollection,并在调用实际树视图节点的Clear方法后保留节点的副本吗 TreeNodeCollection tnc = null; private TypeIn() { tnc = treeView1.Nod

我正在尝试将treeview节点复制到treenodecollection以进行其他处理。当我执行下一行中的
treeview.nodes.clear()
时,我的treenodecollection将变为null。您能告诉我如何将treeview节点复制到treenodecollection,并在调用实际树视图节点的Clear方法后保留节点的副本吗

TreeNodeCollection tnc = null;
private TypeIn()
{
      tnc = treeView1.Nodes;
      treeView1.Nodes.Clear();
      //Now my tnc becomes null, but I want the tnc for future use.
}

TreeNode对象是可克隆的,所有子树都是完整的。这就是为什么您可以使用包含根节点和这些子树的列表

List<TreeNode> tnc = null;
private TypeIn()
{
      tnc  = new List<TreeNode>();
      foreach (TreeNode n in treeView1.Nodes)
      {
          tnc.Add((TreeNode)n.Clone());
      }
      treeView1.Nodes.Clear();

}
List tnc=null;
私有类型输入()
{
tnc=新列表();
foreach(TreeView.Nodes中的TreeNode n)
{
tnc.Add((TreeNode)n.Clone());
}
treeView1.Nodes.Clear();
}