treeview treenodes复制

时间:2010-11-09 06:56:46

标签: c#

我在树视图中有很多节点,比如孩子们的节点,孩子的孩子......

我想复制这些内容并将其粘贴到另一个节点中。 我不想使用克隆方法,因为它会影响它复制的原始节点的对象。

2 个答案:

答案 0 :(得分:1)

尝试像这样使用递归

private void IterateTreeNodes( TreeNode originalNode, TreeNode rootNode )
{
  foreach ( TreeNode childNode in originalNode.Nodes )
  {
    TreeNode newNode = new TreeNode( childNode.Text );
    newNode.Tag = childNode.Tag;
    treeView2.SelectedNode = rootNode;
    treeView2.SelectedNode.Nodes.Add( newNode );
    IterateTreeNodes( childNode, newNode );
  }
}

// copy nodes from treeView1 to treeView2
private void button1_Click( object sender, EventArgs e )
{
  foreach ( TreeNode originalNode in treeView1.Nodes )
  {
    TreeNode newNode = new TreeNode( originalNode.Text );
    newNode.Tag = originalNode.Tag;
    treeView2.Nodes.Add( newNode );
    IterateTreeNodes( originalNode, newNode );
  }
}

这是http://windowsclient.net/blogs/faqs/archive/2006/05/30/how-do-i-clone-or-copy-all-the-nodes-from-one-treeview-control-to-another.aspx

的代码段

答案 1 :(得分:0)

您可以使用任何遍历算法

在每一步中,您可以将遍历的节点放到一个对象中,并将该对象放在一个objectList中......

一切顺利......