【发布时间】:2009-03-21 12:17:18
【问题描述】:
如何在我的程序和资源管理器之间实现拖放 仅适用于 Windows 应用程序
【问题讨论】:
-
什么是“程序”? Windows 应用程序?
标签: c# drag-and-drop
如何在我的程序和资源管理器之间实现拖放 仅适用于 Windows 应用程序
【问题讨论】:
标签: c# drag-and-drop
只要您使用 WinForms,它实际上非常简单。请参阅这两篇文章以帮助您入门:
如果您使用 WPF,this tutorial 和 this SO thread 应该会有所帮助。
【讨论】:
CodeProject 上有一篇关于如何做到这一点的好文章:
此示例项目列出了一个文件夹 充满文件,并让您拖动和 将它们放入资源管理器中。你也可以 从资源管理器拖到示例中, 你可以使用 Shift 和 Ctrl 修改动作的键,就像 在资源管理器中。
Drag and drop, cut/copy and paste files with Windows Explorer
开始拖动操作到 Explorer,我们实现
ItemDrag来自Listview的事件,它得到 在您拖动一个项目后调用 比几个像素。我们简单地调用DoDragDrop传递文件 拖着包裹在DataObject中。你 真的不需要了解DataObject- 它实现了IDataObject中使用的接口 交流。
【讨论】:
在 Drag enter 事件中添加此项(这将在您拖动文件时更改光标类型)
private void Form1_DragEnter(object sender, DragEventArgs e)
{
// If file is dragged, show cursor "Drop allowed"
if (e.Data.GetDataPresent(DataFormats.FileDrop))
e.Effect = DragDropEffects.Copy;
else
e.Effect = DragDropEffects.None;
}
然后在 DragDrop 事件中,您需要处理您想要执行的操作。 并将 AllowDrop 属性设置为 true
【讨论】: