Si solo está copiando y pegando dentro de su aplicación, puede asignar la operación de cortar/copiar de su vista de árbol a un método que solo clone su nodo seleccionado. Es decir:
TreeNode selectedNode;
TreeNode copiedNode;
selectedNode = yourTreeview.SelectedNode;
if (selectedNode != null)
{
copiedNode = selectedNode.Clone;
}
// Then you can do whatever you like with copiedNode elsewhere in your app.
Si estás interesado en ser capaz de pegar a otras aplicaciones, entonces usted tendrá que utilizar el portapapeles. Puede obtener un poco más elegante que simplemente texto al aprender más acerca de la interfaz IDataObject. No puedo recordar la fuente, pero aquí hay algo que tenía en mis propias notas:
Cuando se implementa en una clase, los métodos IDataObject permiten al usuario almacenar datos en múltiples formatos en una instancia de la clase . Almacenar datos en más de un formato aumenta el posibilidad de que una aplicación de destino, cuyos requisitos de formato puede saber, puede recuperar los datos almacenados . Para almacenar datos en una instancia de IDataObject, llame al método SetData y especifique el formato de datos en el parámetro de formato . Establezca el parámetro autoConvert en false si no desea que datos almacenados se conviertan a otro formato cuando se recupera. Invoque SetData varias veces en una instancia de IDataObject para almacenar datos en más que en un formato.
Una vez que haya pobladas un objeto que implementa IDataObject (por ejemplo, algo llamado yourTreeNodeDataObject), entonces se le puede llamar:
Clipboard.SetDataObjecT(yourTreeNodeDataObject);
algo como esto –