gpt4 book ai didi

c# - Winforms 应用程序停止绘图但仍对事件有反应

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

我们有一个 C# .NET 3.5 UI 客户端应用程序,它在 Windows 7 的多显示器桌面环境(通常是 4 个屏幕)中运行。每隔一段时间,在运行其中几个应用程序后,屏幕就会停止重绘。

控件继续对点击或按键使用react,并且可以通过编程方式更新值,但不会重新绘制整个表单以反射(reflect)任何更改。例如,基于状态启用/禁用的按钮可能会保持灰色,但对点击有反应,反之亦然。单击时按钮不会动画。

解决方法:最小化并恢复窗口似乎可以解决问题。此后,应用程序开始正确绘制。

这个问题最令人沮丧的方面是,在编程方面,一切似乎都在正常运行。我们的日志中没有发现异常。系统事件日志中看不到任何内容。我们还没有找到一种方法来检测这种情况是否正在发生。

其他杂项:日志使用log4net,服务器通信层使用ZMQ

更新:
调用表单 Invalidate() 和 Update() 不能解决问题。
在屏幕之间拖动窗口时,它会在每个屏幕上显示不同的值。最小化/恢复仍然可以解决问题。

最佳答案

如果没有看到应用程序和代码,我无法确定任何事情,但我最好的猜测是有人在复杂的更新之前调用了 .SuspendLayout(),并且异常(可能被吞噬)阻止了从到达相应的 .ResumeLayout() 的代码。要对此进行测试,请尝试为表单添加一个调用 .ResumeLayout() 的按钮。

关于c# - Winforms 应用程序停止绘图但仍对事件有反应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7919311/

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