将对象从一个应用程序拖到另一个应用程

时间:2012-08-04 21:14:45

标签: c# winforms

我有两个小应用程序:图像文件浏览器和图像查看器。

资源管理器使用标准树视图来显示文件系统中的内容 查看器支持拖放以加载文件。

我想将文件条目从浏览器拖到我的查看器中并让它加载图像。 如果我需要访问特定信息,资源管理器中的每个节点都会在其标记中保存一个FileInfo对象。

这可能吗?

注意:我可以直接将浏览器构建到资源管理器中,但我想知道是否可以将对象拖入和移出应用程序。

1 个答案:

答案 0 :(得分:1)

从自定义应用中获取数据的一些基本代码...

DataObject d = new DataObject(); 
d.SetData(DataFormats.Serializable, myObject); 
myForm.DoDragDrop(d, DragDropEffects.Copy); 

通常首先确定拖动源,UIElement或ContentElement,然后为MouseMove事件创建处理程序。这就是上面的代码应该去的地方。

在放置目标上,您还可以标识元素,将AllowDrop设置为true,并实现Drop事件处理程序。看看Drag and Drop Overview应该非常有帮助。