c# - 拖放不适用于已编译的 EXE 文件
问题描述
我向我的 C# windows 窗体应用程序添加了一个功能,该功能允许用户在窗体上拖放文件,以便应用程序可以获取文件路径。我只是完全按照上面写的:
它正在 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 上的文件,但不能从文件浏览器中拖放。
解决方案
推荐阅读
- compiler-construction - 编译器构造中将哪些值存储到符号表中
- powershell - 有没有办法在 powershell 脚本中检索 Azure SQL 数据库的计算模型
- java - 使用 MockMvcBuilders.standaloneSetup 时出现 StackOverFlowError
- python - 如何在 Python 中获取当前函数对象?
- android-studio - Android Studio 不会生成签名的 aab
- continuous-integration - 您可以在内部托管 bitbucket 管道吗?
- python - Pandas DF dtype 属性
- r - 在 data.table 中复制 dplyr `any_of()` 功能
- node.js - 创建和导入手写类型定义的私有包
- maven - 我在尝试运行 shopizer-inventory-xml 时出错