Если вы копируете и вставляете только внутри своего приложения, вы можете отобразить операцию вырезания / копирования вашего дерева в методе, который просто клонирует выбранный вами узел. То есть:
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.
Если вы хотите иметь возможность вставлять в другие приложения, вам придется использовать буфер обмена. Вы можете получить немного больше, чем просто текст, узнав больше об интерфейсе IDataObject . Я не могу вспомнить источник, но у меня есть кое-что в моих заметках:
При реализации в классе
Методы IDataObject позволяют пользователю
хранить данные в нескольких форматах в
экземпляр класса. Хранение данных в
более одного формата увеличивает
вероятность того, что целевое приложение,
чьи требования к формату вы могли бы
не знаю, может извлечь сохраненный
данные. Для хранения данных в экземпляре
IDataObject, вызовите метод SetData
и укажите формат данных в
параметр формата. Установите автоконвертировать
параметр в false, если вы не хотите
сохраненные данные для преобразования в другое
формат при получении. взывать
SetData несколько раз на одном экземпляре
IDataObject для хранения данных в более
чем один формат.
Как только вы заполнили объект, который реализует IDataObject (например, что называется yourTreeNodeDataObject ), вы можете вызвать:
Clipboard.SetDataObjecT(yourTreeNodeDataObject);