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) –