【问题标题】:Save As Dialog Box freezes另存为对话框冻结
【发布时间】: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


【解决方案1】:

你在设置InitialDirectory property of the dialog吗?

如果是,请尝试将其设置到另一个位置,如果不是,您可以尝试设置它。

如果这是默认的网络路径,打开该路径可能需要一些时间?

【讨论】:

    【解决方案2】:

    这可能是文件系统或硬盘损坏的结果。调用保存对话框时,它将尝试获取硬盘驱动器、逻辑驱动器和文件夹的列表。如果其中任何一个损坏,它将挂起/抛出异常。

    尝试在不同的 Windows 7 机器上运行相同的应用程序

    【讨论】:

      【解决方案3】:

      您是否在 Windows 7 上运行了系统文件检查器 (SFC) 扫描,它会扫描计算机上损坏的系统文件并替换它们。

      http://support.microsoft.com/kb/929833

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-15
        • 1970-01-01
        • 2011-08-02
        • 1970-01-01
        • 1970-01-01
        • 2021-01-22
        • 1970-01-01
        相关资源
        最近更新 更多