一连串的OnPaint事件

本文关键字:事件 OnPaint 一连串 | 更新日期: 2023-09-27 17:51:10

我们有一个。net 2.0软件,正常运行在Windows XP下(配置在Windows"经典"模式下,没有花哨的东西)。现在我在Windows 7上运行它。我注意到的是,在Windows 7上,当面板失效时,某个充满标签和布局的面板会产生各种各样的OnPaint事件。不仅如此,似乎后续的OnPaint调用会中断当前正在执行的OnPaint。从窗口的消息队列中取出一条消息,处理到完成,然后取出下一条消息的方案发生了什么变化?

我使用OnPaint方法有时配置布局,也许这是什么产生额外的OnPaint事件,但我不能至少运行当前的OnPaint方法,以完成下一个调用之前?我不得不在我的代码中进行各种检查,以防止发生这种重入。

在经典模式下运行的Windows XP不会出现这个问题,但在Windows XP全屏运行时可能会出现这个问题。

一连串的OnPaint事件

我有时使用OnPaint方法来配置布局,

当你"配置"(改变)布局时,你使控件无效。Paint事件/方法不是更改任何内容的正确位置。

,但我不能至少运行当前的OnPaint方法,以完成下一个调用之前?

当Paint不导致Invalidate(它不应该)时,这是自动的。