2011-12-18 50 views
17

如何通过拖放将文件加载到表单?C#拖放文件形成

哪个事件会出现?

我应该使用哪个组件?

如何确定文件和其他属性的名称后拖放到表单?

谢谢!

代码

private void panel1_DragEnter(object sender, DragEventsArgs e){ 
     if (e.Data.GetDataPresent(DataFormats.Text)){ 
       e.Effect = DragDropEffects.Move; 
       MessageBox.Show(e.Data.GetData(DataFormats.Text).toString()); 
     } 
     if (e.Data.GetDataPresent(DataFormats.FileDrop)){ 

     } 
    } 

OK,这个工程。

文件怎么样?我如何获得文件名和扩展名?

并且这只是一个dragEnter操作。

+0

各种拖拽相关的事件都以协调的方式一起处理。您是否阅读过相关文件? – 2011-12-18 09:56:37

+1

[如何将文件拖放到ac#应用程序中?](http://stackoverflow.com/questions/68598/how-do-i-drag-and-drop-files-into-ac-sharp -application) – 2011-12-18 10:25:12

回答

29

该代码将遍历并打印全名(包括扩展名)的所有文件拖动到窗口:

if (e.Data.GetDataPresent(DataFormats.FileDrop)) 
{ 
     string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); 
     foreach (string filePath in files) 
     { 
      Console.WriteLine(filePath); 
     } 
} 
5

检查下面的链接了解更多信息

http://doitdotnet.wordpress.com/2011/12/18/drag-and-drop-files-into-winforms/

private void Form2_DragDrop(object sender, DragEventArgs e) { 
    if (e.Data.GetDataPresent(DataFormats.FileDrop)) { 
    string[] filePaths = (string[])(e.Data.GetData(DataFormats.FileDrop)); 
    foreach (string fileLoc in filePaths) { 
     // Code to read the contents of the text file 
     if (File.Exists(fileLoc)) { 
     using (TextReader tr = new StreamReader(fileLoc)) { 
      MessageBox.Show(tr.ReadToEnd()); 
     } 
     } 
    } 
    } 
} 

谢谢。

+1

质量答案需要链接内容摘要。并且要小心将链接发布到自己的博客:它看起来像垃圾邮件非常多。 – 2011-12-18 10:08:44

+0

好的,谢谢科迪·格雷。将按照你的意见 – doit4dotnet 2011-12-18 14:53:28