【发布时间】:2013-10-09 12:04:30
【问题描述】:
我有一个 winform 应用程序,并且有一个代码可以打开 Save as Dialog box。
DialogResult result = saveFileDialog1.ShowDialog();
该程序在 Windows XP 上运行良好,但在 Win 7 上应用程序挂起,调试器不会从这行代码返回。 Event Viewer 详细信息如下
The Program Sample.exe stopped interacting with windows and was closed
有人遇到过这个问题吗?
更新
似乎该错误是由于我现在已删除的另一个线程上运行的代码引起的。尽管不建议从另一个线程访问 UI 元素,但我很惊讶为什么在 XP 上运行时没有收到此错误?
【问题讨论】:
-
在谷歌上搜索错误后,它似乎只是一个 explorer.exe 问题,这听起来合理吗?你试过多少台 Windows 7 机器?
-
Build->Rebuild Solution? -
@SecretSquirrel 我尝试使用只有一个表单和按钮和 onbutton 单击创建示例项目我正在尝试打开另存为对话框...但窗口只是冻结
-
不确定这是否会导致您的特定问题,但任何时候常见对话框出现奇怪问题时,确保您的应用程序在 STA 线程中运行是值得的。您的应用程序的入口点(通常是
Program.Main())是否具有[STAThread]属性?您是否显示了来自默认线程以外的线程的任何 UI? -
@Kyle 正如其他人所说,当磁盘上有损坏的文件等时会发生这种错误。但除非所有 5 台机器都损坏,否则我看不出这是问题所在。很抱歉,但老实说,我对此无能为力。
标签: c# .net winforms savefiledialog