4

有没有人遇到过 .Net Windows Forms 应用程序导致桌面严重闪烁的情况?

我在用户控件中有一个带有 datagridview 的 Windows 窗体应用程序(.Net 3.5,C#)。有时,在同时运行其他应用程序时(我在 Louts Notes 中看到,但最糟糕的行为是使用 Reuters Bridge Station 的用户),切换到我的应用程序然后切换到另一个应用程序会导致整个桌面闪烁,冻结所有用户交互,从几秒钟到接近一分钟。(所有使用 Windows XP Professional 的用户)即使网格中有少量数据也会发生这种情况重绘。

我已经启用了双缓冲,所以这不是解决方案。

我(在 MS 论坛中)发现的一件有趣的事情是设置表单的 TransparencyKey 可以解决问题 - 有时。(特别针对 Louts Notes 用户,但不适用于 Bridge Station 用户。)仍然受到影响的用户正在通过在数据输入后最小化应用程序来解决此问题,然后再切换到其他应用程序。任何想法都将不胜感激,因为我正在为此拔头发。而且我没有太多的头发开始。

是的

4

2 回答 2

1

如果在从 Visual Studio 调试时发生这种情况,您可以尝试启用框架调试Tracepoints以将日志条目写入输出窗口,这种技术对于深入了解奇怪的 Winforms 问题非常有用。

一旦你找到了一些你认为被过度或不必要地调用的东西,你就可以插入一个断点并查看堆栈以查看导致问题的原因。

于 2010-07-05T19:47:32.320 回答
0

使用盲松鼠学校的故障排除,我似乎找到了一个坚果......我的意思是解决方法 - 我将显示硬件加速拨到最低(略高于“无”)。这与设置 TransparencyKey一起看起来解决了我的问题。

归根结底,虽然这表明显示驱动程序存在问题(可能是多显示器特定的),但也存在 .NET 问题,因为 1) 该问题仅在我的程序运行时出现。2) 在测试机器上更新驱动程序并不能解决问题。

于 2010-07-15T15:54:37.613 回答