如何将一个treeview实例的节点添加到同一树视图的另一个实例

时间:2011-05-20 09:24:38

标签: c# winforms treeview

如何将节点填充到newtreeview1中,这是另一个treeview1的实例?添加到“newtreeview1”的节点应该在treeview1的第一个实例中可用吗?

例如

;如果treeview1包含

   |-- Node1
        |-- Node2
           | -- Node3
        |-- Node4

newtreeview1也应该有上述节点。

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

您需要复制节点。类似的东西:

otherTreeView.Nodes.Add(node.Text);

根据您的需要,您需要选择一个overload of the Add method,其中包含您要复制的所有数据(关键字,文字和/或图像)。只是不要直接添加节点,而是添加它们的组成部分。

答案 2 :(得分:0)

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

Save nodes from a treeview

答案 3 :(得分:0)

您只需复制TreeView1实例并添加其他节点即可。 同样的事情如下所示

TreeView2 = TreeView1;
TreeView2.Nodes.Add(new TreeNode());