2010-08-06 55 views

回答

0

如果該文件已經存在,你可以做這樣的:如果該文件不存在,那麼該怎麼辦呢DoDragDrop

Transferring Virtual Files to Windows Explorer in C#

+0

@Giorgi:這將在內部上傳(客戶端 - >服務器拖動),我拖動或只是它將複製? – 2010-08-09 08:35:58

+0

@Giorgi:我的要求就像我連接到一個FTP服務器登錄它,然後從那裏返回文件/文件夾列表綁定到樹視圖,然後打開在Windows資源管理器的幫助下process.Start現在當我拖放一些的項目到FTP服務器文件夾內部上傳應該haapen,如果我拖動n從FTP服務器文件夾下垂到本地下載應該發生在內部。 – 2010-08-09 08:40:19

+0

@Swapnil - 當你放棄文件時會發生什麼,取決於你是否放棄它。主要的是你應該爲你拖動的文件提供內容。 – Giorgi 2010-08-09 10:08:38

0

當你想成爲安放目標,則需要能丟棄的形式:

AllowDrop = true; 

在這一點上,你需要線了一些事件處理程序:

  • ItemDrag
  • 的dragover
  • 的dragenter
  • DragLeave
  • 的DragDrop

所以,如果你有一個列表框,想列出文件下降,是這樣的:

private void listBox1_DragDrop(object sender, DragEventArgs e) 
{ 
    foreach (string fileName in (string[])e.Data.GetData(DataFormats.FileDrop)) 
    { 
     listBox1.Items.Add(fileName); 
    } 
} 

安放源,略更多的工作和最好的工作,如果你真的有一個真實的文件的文件名(見MSDN鏈接),有一個完整的系列,描述所有的技巧Shell Style Drag and Drop in .NET其中爲您提供一個完整的庫供您使用。

一些來源:

+0

我想從我的應用程序列表視圖拖放到Windows資源管理器。 – 2010-08-06 08:59:02

+0

我看到了 - 編輯中...繼續。 – 2010-08-06 09:05:02

+0

你真的知道你正在拖動的「文件」是否存在嗎? – 2010-08-06 09:05:27

0

當用戶手動移動項目時,該代碼片段非常接近從「item」(僅替換「test.txt」字符串)到任何瀏覽器窗口(包括ftp)的拖動。

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); 
} 
相關問題