ControlStyles.DoubleBuffer和ControlStyles.OptimizedDoubleBuffer有什么区别?
ControlStyles.DoubleBuffer没有显示在 Intellisense 下拉列表中,而ControlStyles.OptimizedDoubleBuffer实际上已列出。
MSDN 文档并没有立即说明差异(至少对我而言)。
ControlStyles.DoubleBuffer和ControlStyles.OptimizedDoubleBuffer有什么区别?
ControlStyles.DoubleBuffer没有显示在 Intellisense 下拉列表中,而ControlStyles.OptimizedDoubleBuffer实际上已列出。
MSDN 文档并没有立即说明差异(至少对我而言)。
我在这个主题上找到了这个线程。
注意:以下是关于受保护的Control
财产,而不是ControlStyles
:
DoubleBuffered = true 设置 ControlStyles.OptimizedDoubleBuffer 和 ControlStyles.AllPaintingInWmPaint。
根据 WinForms 文档,以上是首选用法。或者,也可以通过SetStyle
.
在某一时刻,意图是弃用 DoubleBuffer 并改用 OptimizedDoubleBuffer,但是该线程解释了为什么这可能是一个坏主意(我不明白)
看起来整个情况有点混乱,但最终这两个标志做了非常相似的事情 - 线程表明 OptimizedDoubleBuffer 和 DoubleBuffer 之间仍然存在细微差别,但没有解释它们是什么。
有趣的。引导我在网上搜索。
来自微软
OptimizedDoubleBuffer 的文档表明它将有助于减少闪烁,并且与将 UserPaint 和 AllPaintingInWmPaint ControlStyles 设置为 true 具有相同的效果。但是,如果 OptimizedDoubleBuffer ControlStyle 设置为 true 而不设置 UserPaint 和 AllPaintingInWmPaint,则不会明显减少闪烁。在设置 DoubleBuffer、UserPaint 和 AllPaintingInWmPaint ControlStyles 时,设置 UserPaint 和 AllPaintingInWmPaint ControlStyles 将导致与 Visual Studio 2003 中相同的减少闪烁优化。换句话说 - OptimizedDoubleBuffer 和过时的 DoubleBuffer 之间似乎没有任何区别。
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=94096