【问题标题】:Get the path of a file dragged into a Windows Forms form获取拖入 Windows 窗体窗体的文件的路径
【发布时间】:2011-05-20 20:23:57
【问题描述】:

我正在开发一个应用程序,它要求用户将文件从Windows Explorer 拖到应用程序窗口(@98​​7654322@ 表单)。有没有办法在C#中读取文件的文件名、路径和其他属性?

【问题讨论】:

标签: c# winforms file drag-and-drop


【解决方案1】:

您可以捕获 DragDrop 事件并从那里获取文件。比如:

void Form_DragDrop(object sender, DragEventArgs e)
{
    string[] fileList = (string[])e.Data.GetData(DataFormats.FileDrop, false);

    //more processing
}

【讨论】:

  • 我也会为 InvalidCastException 抛出一个 try/catch,以防用户尝试拖入其他东西!
  • 我不允许进行单字符编辑,所以我留下这个评论:FileList 应该是驼峰式:fileList
  • 在表单上保存文件不允许我删除文件。为什么?它给了我不允许的标志..
【解决方案2】:

你应该使用两个事件 1) 拖放 2) 拖动输入

还将面板/表单的“AllowDrop”属性启用为true

 private void form_DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
        {
            e.Effect = DragDropEffects.Copy;
        }
        else
        {
            e.Effect = DragDropEffects.None;
        }
    }

    private void form_DragDrop(object sender, DragEventArgs e)
    {
        string[] filePaths= (string[])e.Data.GetData(DataFormats.FileDrop, false);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多