从.NET应用程序拖放到资源管理器

11

我希望为用户提供在我的应用程序中从网格和其他控件拖放文件到资源管理器的功能。 有没有相关的好示例/文章?


2个回答

8

很简单,只需在MouseDown事件中调用DoDragDrop。为使其起作用,您需要实际上在磁盘上有文件。

private void Form1_MouseDown(object sender, MouseEventArgs e) { 
   string[] files = new string[] { @"c:\temp\test.txt" };
   this.DoDragDrop(new DataObject(DataFormats.FileDrop, files), DragDropEffects.Copy); 
}

这个方法完美地运行,除了它会干扰其他事件,比如双击项目和点击拖动进行多选。有没有解决的办法? - Stoopkid
2
当然,使用MouseMove事件,直到它移动足够远才开始拖动。这不是这个问题的主题。 - Hans Passant

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接