我有一个使用.net框架4.0版的c#项目,并且在VS 2010上运行。我创建了一个填充了一些扩展树节点的树视图。我希望用户能够通过上下文菜单或键盘快捷键(而不仅仅是拖放)将这些节点复制,剪切和粘贴到剪贴板。如何剪切,复制和粘贴扩展树节点?
复制时代码运行正常,但是当我尝试粘贴这些节点时,它会引发此错误: 无法投射类型为“System.IO.MemoryStream”的对象以键入'Namespace Path.TreeNodeEx'。
这是我的剪切/复制/粘贴方法。
public void Copy()
{
Clipboard.SetData("Tree Node Ex", CurrentTreeNode.Clone());
}
public void Paste()
{
CurrentTreeNode.Nodes.Add((TreeNodeEx)Clipboard.GetData("Tree Node Ex"));
}
我怀疑问题是与序列化,但我试过落实ISeralizable接口和[Serializable]属性无济于事。
有什么建议吗?
我试过,但它仍然返回null。我也将复制方法更改为Clipboard.SetDataObject(),但仍然给出了一个空节点。 – User2400 2010-08-12 08:01:00