通过将“AllPaintingInWmPaint”、“UserPaint”和“DoubleBuffer”ControlStyles 的值设置为“true” ( this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true)
),可以对整个表单进行双缓冲。
但是 System.Windows.Forms.Panel 不会发生这种情况,因为该类不允许我这样做。我找到了一种解决方案: http: //bytes.com/topic/c-sharp/answers/267635-double-buffering-panel-control。我也试过这个:Winforms Double Buffering。它很滞后,即使它用于小图纸,我也有一些自定义资源,我在表单和其他东西中使用这些资源,因此我不会将整个表单变成一张图纸。第二个似乎会引起问题。还有其他方法可以做到这一点吗?
我问这个是因为我不希望面板上的绘图在调整表单大小时一直闪烁。如果有办法在没有双缓冲的情况下摆脱闪烁,我会很高兴知道。