Скопируйте все родительские и дочерние treeView в другой treeView c # WinForms

Я пытаюсь скопировать все дерево (а именно все узлы) древовидного представления (полностью) в другое древовидное представление, используя этот код:

        TreeNodeCollection myTreeNodeCollection = treeView1.Nodes;

        TreeNode[] myTreeNodeArray = new TreeNode[treeView1.Nodes.Count];

        treeView1.Nodes.CopyTo(myTreeNodeArray, 0);

        treeView2.Nodes.AddRange(myTreeNodeArray);

Но это не позволяет мне сделать это, он просит либо удалить узлы в исходный treeview или используйте его Clone! Как я могу это сделать? Я не хочу, чтобы дерево исходных текстов ничего не потеряло в этом процессе.

** ОБНОВЛЕНИЕ ** Хорошо, ребята, я нашел сложный код (для меня !!), но как я могу его использовать?

    public static T DeepTreeCopy<T>(T obj)
    {
        object result = null;
        using (var ms = new MemoryStream())
        {
            var formatter = new BinaryFormatter();
            formatter.Serialize(ms, obj);
            ms.Position = 0;
            result = (T)formatter.Deserialize(ms); ms.Close();
        }
        return (T)result;
    } 
9
задан ajeh 30 March 2015 в 20:23
поделиться