拖放
如何在我的程序和资源管理器之间实现拖放仅限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