我们有一个通常在 Windows XP 下运行的 .NET 2.0 软件(配置为 Windows“经典”模式,没有花里胡哨)。现在我在 Windows 7 上运行它的全部荣耀。我在 Windows 7 上注意到的是,当面板失效时,布局中的某个面板塞满了标签和布局,会生成各种 OnPaint 事件。不仅如此,随后的 OnPaint 调用似乎会中断当前正在执行的调用。从窗口的消息队列中取出一条消息,处理它直到完成,然后取出下一条的方案发生了什么?
我有时使用 OnPaint 方法来配置布局,也许这就是生成额外 OnPaint 事件的原因,但我至少不能在下一次调用之前运行当前的 OnPaint 方法来完成吗?我不得不用各种检查乱扔我的代码,以防止正在发生的这种重入。
这对于在经典模式下运行的 Windows XP 来说不是问题,尽管在 Windows XP 完全运行时可能会出现问题。