C# 拖放在已编译的EXE文件上不起作用

C# 拖放在已编译的EXE文件上不起作用,c#,winforms,drag-and-drop,C#,Winforms,Drag And Drop,我在C#windows窗体应用程序中添加了一项功能,允许用户在窗体上拖放文件,以便应用程序可以获取文件路径。我完全按照上面写的做了: 它正在Visual Studio环境中以调试模式工作。但是,只要我在bin/Debug文件夹中创建的单个exe文件上尝试相同的操作,应用程序就不会对拖放做出反应 我已经尝试删除bin/Debug文件夹中的所有文件,但结果没有改变 如果有人对此有类似的问题和解决方案,那就太好了。多谢各位 以下是我正在尝试的代码(在一些尝试和错误之后,它与上面显示的URL中所写的

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

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

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

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


以下是我正在尝试的代码(在一些尝试和错误之后,它与上面显示的URL中所写的有所不同,但这仍然适用于Visual Studio,但不适用于exe…):

private void OpenFile\u DragEnter(对象发送方,DragEventArgs e)
//启用拖放事件
{
e、 效果=DragDropEffects.Copy;
}
私有void OpenFile_DragDrop(对象发送方,DragEventArgs e)
//打开拖放式安装文件
{
//获取拖放文件路径
string[]s=(string[])e.Data.GetData(DataFormats.FileDrop,false);
//打开所有文件
对于(int i=0;i


更新:我发现的另一件事是,我可以从OpenFileDialog将文件拖放到EXE上,但不能从file exploler上拖放文件。

从EXE运行和从运行与从运行没有任何区别。您正在做的事情是不同的,或者您没有真正运行相同的代码。首先检查exe上的日期,以确保它是正确的日期。然后确保从VS运行时所执行的步骤与运行exe时所执行的步骤完全相同。也许讨论会有所帮助。欢迎使用StackOverflow。感谢您抽出时间分享您的问题。但是你的问题中缺少了一些东西。你的目标和困难是什么?到目前为止你做了什么?请尝试更好地解释您的问题、开发环境和数据结构,并共享更多代码(无屏幕截图)、一些示例、屏幕图像或草图以及用户故事或场景图。为了帮助您改进您的请求,请阅读右上角的和我避免问的问题。谢谢大家的回答。我确认我正在运行的exe文件已在代码修改后创建。在VisualStudio上,当我在窗体上拖动文件时,鼠标光标会立即变成“+”图标(显然,在拖放后,它会按照我的预期工作),但它会显示“圆圈和斜线”标记,并且不允许以某种方式进行拖放。。。我仍在努力理解它是如何发生的。你可能跑了。从提升进程拖动到非提升进程时,D+D无法工作。右键单击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]);
        }
    }