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

本文关键字:实例 视图 节点 添加 另一个 一个 | 更新日期: 2023-09-27 17:56:57

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

例如;如果 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);

根据所需的内容,需要选取包含要复制的所有数据(键、文本和/或图像)的 Add 方法重载。只是不要直接添加节点,而是添加它们的组成部分。

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

从树视图保存节点

只需复制 TreeView1 实例并添加其他节点即可。与下面显示的相同内容

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