Copie todos los padres e hijos de treeView a otro treeView c # WinForms
Estoy intentando copiar todo el árbol (exactamente todos los nodos) de una vista de árbol (completamente) a otra vista de árbol usando este código:
TreeNodeCollection myTreeNodeCollection = treeView1.Nodes;
TreeNode[] myTreeNodeArray = new TreeNode[treeView1.Nodes.Count];
treeView1.Nodes.CopyTo(myTreeNodeArray, 0);
treeView2.Nodes.AddRange(myTreeNodeArray);
Pero esto no me permite hacerlo, ¡pide eliminar los nodos en la vista de árbol de origen o usar Clone! ¿Cómo puedo hacer eso? No quiero que mi vista de árbol de origen pierda nada en este proceso.
** ACTUALIZACIÓN ** Ok chicos, encontré un código complicado (¡para mí!) Pero ¿cómo puedo usar esto?
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;
}