Как добавить узлы одного экземпляра дерева в другой экземпляр того же дерева - PullRequest
3 голосов
/ 20 мая 2011

Как заполнить узлы в newtreeview1, который является экземпляром другого дерева view1?Узлы, которые добавляются в "newtreeview1", должны быть доступны в первом экземпляре treeview1?

например;если treeview1 содержит

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

, newtreeview1 также должен иметь вышеуказанные узлы.

Ответы [ 4 ]

1 голос
/ 29 мая 2011

вы можете сделать это путем клонирования каждого узла как это

    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);
0 голосов
/ 29 мая 2011

Вы можете просто скопировать экземпляр TreeView1 и добавить дополнительные узлы. То же, что показано ниже

TreeView2 = TreeView1;
TreeView2.Nodes.Add(new TreeNode());
0 голосов
/ 20 мая 2011

Вы можете попробовать подход, приведенный в этой ссылке ниже, и сериализовать содержимое вашего дерева.Затем создайте новое древовидное представление на основе сериализованного содержимого.Я знаю, что это довольно многословный подход, но он гарантированно правильно добавит все иерархические данные во второе дерево.

Сохранить узлы из дерева

0 голосов
/ 20 мая 2011

Вам необходимо скопировать узлы.Что-то вроде:

otherTreeView.Nodes.Add(node.Text);

В зависимости от того, что вы хотите, вам нужно выбрать перегрузку метода Add , которая включает в себя все данные, которые вы хотите скопировать (ключ, текст и / /или изображения).Только не добавляйте узлы напрямую, а вместо этого составляющие их части.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...