gpt4 book ai didi

c# - WinForms 拖放中的 e.Data.GetData 转换问题

转载 作者:行者123 更新时间:2023-11-30 18:03:29 25 4
gpt4 key购买 nike

我正在尝试在我的程序的 2 个实例之间进行拖放操作,但是当我尝试将数据转换为我的类型时,它会抛出无效转换异常。

代码如下:

    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] 属性添加到您的 Entity 类,并可选择实现 ISerializable 接口(interface)。有关如何使类可序列化的介绍,请参阅:http://msdn.microsoft.com/en-us/library/4abbf6k0(v=VS.90).aspx

这与使用剪贴板的问题相同。在这个 CodeProject 网站上可以看到一个很好的例子:

http://www.codeproject.com/KB/cs/copycustomclasstoclipbrd.aspx

关于c# - WinForms 拖放中的 e.Data.GetData 转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com