c#拖放文件到表单

本文关键字:表单 文件 拖放 | 更新日期: 2023-09-27 18:18:24

如何通过拖放将文件加载到表单中?

哪个事件会出现?

我应该使用哪个组件?

和如何确定文件的名称和其他属性后,拖放到一个窗体?

谢谢!

代码
   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)){
        }
   }

好了,可以了。

文件呢?我怎样才能得到文件名和扩展名?

这只是一个dragEnter动作

c#拖放文件到表单

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

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

查看下面的链接获取更多信息

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());
          }
    }
}

你需要工作2以下的事件,当然,当你的Control/Form AllowDrop属性为真。

    private void Home_DragOver(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
            e.Effect = DragDropEffects.Link;
        else
            e.Effect = DragDropEffects.None;
    }
    private void Home_DragDrop(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
        {
            string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
            //YourOpenMethod(files);
        }
    }

享受…