如何将节点填充到newtreeview1中,这是另一个treeview1的实例?添加到“newtreeview1”中的节点应该在treeview1的第一个实例中可用?例如如何将TreeView的一个实例的节点添加到同一树形视图的另一个实例
;如果treeview1包含
|-- Node1
|-- Node2
| -- Node3
|-- Node4
newtreeview1也应该有上述节点。
如何将节点填充到newtreeview1中,这是另一个treeview1的实例?添加到“newtreeview1”中的节点应该在treeview1的第一个实例中可用?例如如何将TreeView的一个实例的节点添加到同一树形视图的另一个实例
;如果treeview1包含
|-- Node1
|-- Node2
| -- Node3
|-- Node4
newtreeview1也应该有上述节点。
您可以通过克隆每个节点 这样
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);
您需要复制节点。喜欢的东西:
otherTreeView.Nodes.Add(node.Text);
取决于你想要什么,你需要选择一个overload of the Add method包括所有要复制(键,文本和/或图像)的数据。只是不要直接添加节点,而是直接添加它们的组成部分。
ya。我尝试过,但它会抛出“指定的节点不能添加到属于不同的控件的节点集合。”异常 – Tanya 2011-05-20 09:54:29
只有在直接添加节点时才会抛出此异常。重读马蒂欧的回答。 – 2011-05-20 16:07:02
你可以尝试下面这个链接给出的方法,并序列化你的树内容。然后基于序列化的内容构建一个新的树视图。我知道这是一个冗长的方法,但保证将所有分层数据正确地添加到第二个树视图中。
您可以只复制为TreeView1实例,并添加额外的节点。 同样的东西,如下所示
TreeView2 = TreeView1;
TreeView2.Nodes.Add(new TreeNode());
非常感谢它为我工作.. :) – Tanya 2011-07-19 06:21:24