我有一个需要支持拖放的自定义应用程序。 在我的应用程序中拖动网格时,我在其 DoDragDrop 方法中提供了要以序列化格式放置的对象。
当下降到我的一个应用程序时,它能够对字符串进行反序列化并创建对象。
我想要做的是让源应用程序也能够放入记事本/文本板。我可以看到我可以将文件从 Windows 资源管理器拖放到记事本,但无法将纯文本拖放到记事本。猜测它会检查 DragEnter 事件中的 DataFormat 并不允许使用字符串但允许将文件放入其中。
- 有没有办法更改源应用程序中的 yr 格式,以便它提供临时文件/字符串。
- 是否可以提供 2 种格式的数据,以便目标 drop 可以接受它喜欢的任何格式?
提前致谢!
最佳答案
您可以将多种格式的数据添加到传递给 DoDragDrop 调用的 DataObject 中,因此只需再次调用 SetData 即可添加新格式。这是最合适的实现方式,这样 Drop 目标就可以查询可用格式并选择它最喜欢的格式。
DataObject d = new DataObject();
d.SetData(DataFormats.Serializable, myObject);
d.SetData(DataFormats.Text, myObject.ToString());
myForm.DoDragDrop(d, DragDropEffects.Copy);
关于c# 从我的自定义应用程序拖放到记事本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1772102/