Winform Control.Refresh - 保证同步?

时间:2011-10-27 19:40:57

标签: c# .net winforms

调用WinForms Control.Refresh方法在MSDN中描述为:

强制控件使其客户区无效并立即重绘自身和任何子控件。

我正在调试一个间歇性问题,这个问题似乎是在附加的显示器切换扫描输出信号(有效地改变分辨率)时发生的,其中Control.Refresh似乎没有生成预期的Control.OnPaint调用。我正在检测应用程序以获取更多信息,但是我很好奇这是否真的是运行时决定不调​​用OnPaint,因为它检测到显示暂时消失。

这对我来说似乎不太可能,而且我希望我能找到一些其他的吸烟枪,但是我发布了一些其他人在野外看到这种情况的机会,并且有一些处理这个的建议。

1 个答案:

答案 0 :(得分:1)

不,这不保证。如果控件没有要绘制的屏幕,则不会触发绘制消息。

但是一旦控件再次出现在屏幕上,画面消息就会重新开始。

您是否尝试绘制调试信息?如果屏幕上没有控件,那么当您调用refresh时,您期望发生什么?