首页 > 解决方案 > 拖放不适用于已编译的 EXE 文件

问题描述

我向我的 C# windows 窗体应用程序添加了一个功能,该功能允许用户在窗体上拖放文件,以便应用程序可以获取文件路径。我只是完全按照上面写的:

如何在 Visual C# 应用程序中提供文件拖放功能

它正在 Visual Studio 环境中的调试模式下工作。但是,一旦我在 bin/Debug 文件夹中创建的单个 exe 文件上尝试相同的操作,应用程序不会对拖放做出反应。

我已经尝试删除 bin/Debug 文件夹中的所有文件,但结果没有改变。

如果有人对此有类似的问题和解决方案,那就太好了。谢谢你。


这是我正在尝试的代码(经过一些尝试和错误,它与上面显示的 URL 中的内容有所不同,但这仍然适用于 Visual Studio,但不适用于 exe...):

    private void OpenFile_DragEnter(object sender, DragEventArgs e)
    // enable drag-drop event
    {
        e.Effect = DragDropEffects.Copy;
    }

    private void OpenFile_DragDrop(object sender, DragEventArgs e)
    // open drag-dropped setup file
    {
        // get drag-dropped file path
        string[] s = (string[])e.Data.GetData(DataFormats.FileDrop, false);

        // open all the files
        for (int i = 0; i < s.Length; i++)
        {
            OpenSetup(s[i]);
        }
    }

更新:我发现的另一件事是我可以从 OpenFileDialog 拖放 EXE 上的文件,但不能从文件浏览器中拖放。

标签: c#winformsdrag-and-drop

解决方案


推荐阅读