2011-05-20 60 views

回答

1

您可以通过克隆每个节点 这样

private void CopyNodes(TreeView srcTree, TreeView dstTree) 
    { 
     var ar = System.Array.CreateInstance(typeof(TreeNode), srcTree.Nodes.Count); 
     treeView1.Nodes.CopyTo(ar, 0); 
     foreach (TreeNode item in ar) 
     { 
      dstTree.Nodes.Add((TreeNode)item.Clone()); 
     } 
    } 

做到这一点,调用函数

CopyNodes(treeView1, treeView2); 
+0

非常感谢它为我工作.. :) – Tanya 2011-07-19 06:21:24

0

您需要复制节点。喜欢的东西:

otherTreeView.Nodes.Add(node.Text); 

取决于你想要什么,你需要选择一个overload of the Add method包括所有要复制(键,文本和/或图像)的数据。只是不要直接添加节点,而是直接添加它们的组成部分。

+0

ya。我尝试过,但它会抛出“指定的节点不能添加到属于不同的控件的节点集合。”异常 – Tanya 2011-05-20 09:54:29

+0

只有在直接添加节点时才会抛出此异常。重读马蒂欧的回答。 – 2011-05-20 16:07:02

0

你可以尝试下面这个链接给出的方法,并序列化你的树内容。然后基于序列化的内容构建一个新的树视图。我知道这是一个冗长的方法,但保证将所有分层数据正确地添加到第二个树视图中。

Save nodes from a treeview

0

您可以只复制为TreeView1实例,并添加额外的节点。 同样的东西,如下所示

TreeView2 = TreeView1; 
TreeView2.Nodes.Add(new TreeNode()); 
相关问题