我试图在程序的两个实例之间进行拖放,但是当我尝试将数据转换为我的类型时,它会抛出无效的转换异常。
这是代码:
protected virtual void GetDropIEntities(DragEventArgs e)
{
foreach (string s in e.Data.GetFormats())
Console.WriteLine(s);
Entity[] myDroppedEnts = (Entity[])e.Data.GetData(e.Data.GetFormats()[0]);
}
最奇怪的是 Console.WriteLine 在输出上写入“Entity[]”,但是当我尝试强制转换时会引发异常。有人可以帮我解决这个问题吗?提前谢谢!
要将对象从应用程序的一个实例拖放到另一个实例,该对象必须是可序列化。否则,演员阵容将无法按预期工作。
要实现此目的,您可以添加[Serializable]
属性到您的实体类,并可选择实现ISerializable
界面。有关如何使类可序列化的介绍,请参阅:http://msdn.microsoft.com/en-us/library/4abbf6k0(v=VS.90).aspx http://msdn.microsoft.com/en-us/library/4abbf6k0(v=VS.90).aspx
这与使用剪贴板有同样的问题。在这个 CodeProject 网站上可以看到一个很好的例子:
http://www.codeproject.com/KB/cs/copycustomclasstoclipbrd.aspx http://www.codeproject.com/KB/cs/copycustomclasstoclipbrd.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)