【问题标题】:Openfiledialog is hung up during showingOpenfiledialog 在显示期间挂起
【发布时间】:2016-10-15 17:11:33
【问题描述】:

我的应用程序的静态 dll 模块中有 WinForms UI 代码。主窗体有一个对话框窗体,当用户需要更改文件路径时调用 openfiledialog。如果我在主线程中创建主 winform 对象,那么在新线程调用 Application::run() 中一切正常。如果我在调用 Application::run() 的同一线程中移动一个主 winform 对象创建,这在 Win XP 上运行良好,但在 Win7 和 Win8 上挂起。

【问题讨论】:

    标签: c++ windows winforms


    【解决方案1】:

    FileDialog.AutoUpgradeEnabled 默认为 true,这意味着文件对话框在 Vista+ 上运行时将使用 IFileDialog 接口。 Vista 文件对话框基于 COM。它需要一个 STA 线程 (ApartmentState = ApartmentState.STA) 以及一个消息泵(如 Application::Run)以避免挂起。

    【讨论】:

      猜你喜欢
      • 2020-03-05
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 2010-11-01
      • 2021-01-17
      • 1970-01-01
      • 2015-08-08
      • 2019-06-16
      相关资源
      最近更新 更多