5
最近我一直很难在窗体外实现拖放功能。在windows窗体之间和窗体之间以及从桌面到窗体的拖放操作都没有问题。我创建了一个应用程序,您可以在其上拖放任何项目。我的问题是,我不知道如何实现我的应用程序的反转,从我的应用程序拖放到桌面或窗体外的任何目标。任何建议和想法,我会感激地接受。谢谢。从窗体拖放到桌面和Windows资源管理器
我们正在谈论的文件和文件夹的位置确定:)
最近我一直很难在窗体外实现拖放功能。在windows窗体之间和窗体之间以及从桌面到窗体的拖放操作都没有问题。我创建了一个应用程序,您可以在其上拖放任何项目。我的问题是,我不知道如何实现我的应用程序的反转,从我的应用程序拖放到桌面或窗体外的任何目标。任何建议和想法,我会感激地接受。谢谢。从窗体拖放到桌面和Windows资源管理器
我们正在谈论的文件和文件夹的位置确定:)
我不知道它控制你正在使用;大多数.net控件都有一个方法DoDragDrop
。如果它适合你,请使用此方法。
private void PopulateListView()
{
string directoryPath=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
String[] files=System.IO.Directory.GetFiles(directoryPath);
if(files!=null)
{
foreach(string file in files)
{
listView1.Items.Add(new ListViewItem(file));
}
}
}
private void listView1_MouseDown(object sender, MouseEventArgs e)
{
System.Collections.Specialized.StringCollection filePath = new
System.Collections.Specialized.StringCollection();
if (listView1.SelectedItems.Count > 0)
{
filePath.Add(listView1.SelectedItems[0].Text);
DataObject dataObject = new DataObject();
dataObject.SetFileDropList(filePath);
listView1.DoDragDrop(dataObject, DragDropEffects.Copy);
}
}
它不适用于文件夹。 – Argnist
如果您正在拖动已存在的文件,那么您只需使用HDROP。如果您希望资源管理器基于用户拖动的内容创建一个新文件,那么您可以使用[从空白创建东西:用于.NET的开发人员友好的虚拟文件实现]上的示例(http://blogs.msdn.com/ b /延迟/存档/ 2009/10月26日/创建-东西 - 从 - 无 - 开发者友好的虚拟文件的实现换net.aspx)。 –
你在这里找到一些建议和示例 http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/ce2be58a-9b4a-4bae-8759-512e3a47ff85/ – user629926
可能的重复[Drag and drop to桌面/资源管理器](http://stackoverflow.com/questions/3040415/drag-and-drop-to-desktop-explorer) –