Kanags.Net
Kanags.Net

Reputation: 105

Deep copying of tree view nodes

I'm trying to copy a treeview nodes to treenodecollection for some other processing. When i execute the treeview.nodes.clear() in the next line, my treenodecollection is becoming null. Can you please tell me how to copy the treeview nodes to treenodecollection and keep the copies of the nodes even after calling Clear method of actual tree view nodes?

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

Upvotes: 7

Views: 8255

Answers (1)

Stremlenye
Stremlenye

Reputation: 595

TreeNode object is clonable with all subtree entire. Thats why you can use List which will contain root nodes with there subtrees.

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

}

Upvotes: 4

Related Questions