2

假设一个主窗体 A 和一个模态对话框 B。

我从一个线程(使用调用)启动 B 作为模式对话框。对话框正确显示并使用 ShowDialog(parent) 启动,其中 parent 是表单 A。

当我关闭 B 时,主对话框 A 无法正确响应某些事件,例如鼠标单击。此问题仅在以下情况下重现:

  • 代码使用 .NET 框架 1.1 配置文件编译
  • 代码在 Windows 7 x64 机器上执行

关闭对话框后,会出现以下症状:

  • 表单 A 不响应某些鼠标单击,但响应鼠标移动(鼠标移动时按钮突出显示)。
  • 主窗口关闭按钮在鼠标悬停时突出显示,也可以单击,但不会关闭窗体。
  • 新的模态对话框不再是模态的。
  • 具有 , 属性的对话框StartPosition=CenterParent不居中,它们显示在屏幕的左上角。

我无法在其他机器上重现该问题。此外,如果我使用 .NET 2.0 或更高版本编译代码,问题不会重现。

有什么建议可以解决这个问题吗?我的应用程序需要 1.1。我可以执行任何调用来恢复事件队列吗?

提前致谢。

4

1 回答 1

0

好的,最后这是一个线程问题。我在线程之外更改了调用代码并且它起作用了。

这很烦人,因为有时我们需要从线程中显示此对话框,但在 .NET 1.1 和 x64 机器上,调用和多线程似乎有些麻烦。

无论如何,如果代码是用 .NET 2.0 或更高版本编译的(在真正的 x64 中也可以),问题就消失了。

于 2011-07-21T08:39:22.550 回答