拖放

如何在我的程序和资源管理器之间实现拖放仅限Windows应用程序

只要您使用WinForms,它实际上非常简单。 为了帮助您入门,请参阅以下两篇文章:

  • 将文件从Windows资源管理器拖放到Windows窗体
  • 将文本文件从Windows资源管理器拖放到Windows窗体应用程序中

如果您正在使用WPF, 本教程和此SO线程应该有所帮助。

有关如何执行此操作的CodeProject上有一篇很好的文章:

此示例项目列出了一个包含文件的文件夹,并允许您将它们拖放到资源管理器中。 您也可以从资源管理器拖动到示例中,您可以使用Shift和Ctrl键修改操作,就像在资源管理器中一样。

使用Windows资源管理器拖放,剪切/复制和粘贴文件

要在Explorer中启动拖动操作,我们从Listview实现ItemDrag事件,在您拖动项目超过几个像素后调用它。 我们只需调用DoDragDrop传递要在DataObject包装的文件。 您并不需要理解DataObject – 它实现了通信中使用的IDataObject接口。

在拖动输入事件上添加此项(这将在您拖动文件时更改光标类型)

  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