gpt4 book ai didi

c# - 事件队列无法正常工作 winforms

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:17 28 4
gpt4 key购买 nike

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

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

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

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

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

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

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

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

提前致谢。

最佳答案

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

这很烦人,因为有时我们需要从线程显示此对话框,但在 .NET 1.1 和 x64 机器的情况下,调用和多线程似乎有一些问题。

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

关于c# - 事件队列无法正常工作 winforms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6747610/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com