ControlStyles.DoubleBuffer与ControlStyles.OptimizedDoubleBuffer

14 .net controls doublebuffered winforms

ControlStyles.DoubleBufferControlStyles.OptimizedDoubleBuffer有什么区别?

ControlStyles.DoubleBuffer未显示在Intellisense下拉列表中,而ControlStyles.OptimizedDoubleBuffer实际上已列出.

MSDN文档没有立即明确区别(至少对我来说).

Jus*_*tin 8

我在这个主题上发现了这个主题:

DoubleBuffered = true设置ControlStyles.OptimizedDoubleBuffer和ControlStyles.AllPaintingInWmPaint.

有一点意图是弃用DoubleBuffer并采用OptimizedDoubleBuffer代替,但是线程探究了为什么这可能是一个坏主意的理由(我不明白)

看起来整个情况有点困惑,但最终这两个标志做了非常相似的事情 - 线程表明OptimizedDoubleBuffer和DoubleBuffer之间仍然存在细微差别,但并不能解释它们是什么.


Saa*_*aar 5

有趣。引导我在网络上搜索。

来自微软

OptimizedDoubleBuffer的文档指出,这将有助于减少闪烁,并具有与将UserPaint和AllPaintingInWmPaint ControlStyles设置为true相同的效果。但是,如果将OptimizedDoubleBuffer ControlStyle设置为true而不设置UserPaint和AllPaintingInWmPaint,则不会明显减少闪烁。设置DoubleBuffer,UserPaint和AllPaintingInWmPaint控件样式时,设置UserPaint和AllPaintingInWmPaint控件样式将导致与Visual Studio 2003中相同的减少的闪烁优化。换句话说-OptimizedDoubleBuffer和过时的DoubleBuffer之间似乎没有任何区别。

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=94096