我在树视图中有很多节点,比如孩子们的节点,孩子的孩子......
我想复制这些内容并将其粘贴到另一个节点中。 我不想使用克隆方法,因为它会影响它复制的原始节点的对象。
答案 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 );
}
}
的代码段
答案 1 :(得分:0)
您可以使用任何遍历算法
在每一步中,您可以将遍历的节点放到一个对象中,并将该对象放在一个objectList中......
一切顺利......