复制Treeview到另外Treeview
TreeView本身没办法Clone(),不过只是要内容一样的话,只要把顶层的TreeNode从源TreeView复制到目标TreeView就OK。
- using System.Windows.Forms;
- namespace TestTreeView
- {
- public partial class Form2 : Form
- {
- public Form2(TreeView tv)
- {
- InitializeComponent();
- this.treeView1.Nodes.Clear();
- foreach (TreeNode node in tv.Nodes)
- {
- TreeNode newNode = node.Clone() as TreeNode;
- this.treeView1.Nodes.Add(newNode);
- }
- }
- }
- }
真在工作中肯定是不应该把一个Form的私有TreeView传给别的Form。更好的办法或许是先把TreeNodeCollection给复制到一个一维数组(TreeNodeCollection.CopyTo(TreeNode[] nodeArray, int index)),然后把这个数组传给目标。嘛怎么复制都好,反正浅拷贝的话只要复制顶层节点就OK。
参考文献:http://rednaxelafx.javaeye.com/blog/190358