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 のドキュメントによると、上記が推奨される使用法です。または、 を介して ControlStyle を設定することもできますSetStyle
。
ある時点で、DoubleBuffer を非推奨にし、代わりに OptimizedDoubleBuffer の使用を採用することを意図していましたが、スレッドは、それが悪い考えである理由について説明します (私には理解できません)。
全体の状況が少し混乱しているように見えますが、最終的にこれら 2 つのフラグは非常によく似た動作をします。スレッドは、OptimizedDoubleBuffer と DoubleBuffer の間にまだ微妙な違いがあることを示していますが、それらが何であるかについては説明していません。
面白い。ウェブで検索するように私を導きます。
マイクロソフトから
OptimizedDoubleBuffer のドキュメントは、ちらつきを減らすのに役立ち、UserPaint および AllPaintingInWmPaint ControlStyles を true に設定するのと同じ効果があることを示しています。ただし、UserPaint と AllPaintingInWmPaint を設定せずに OptimizedDoubleBuffer ControlStyle を true に設定すると、目に見えるちらつきの減少は見られません。UserPaint および AllPaintingInWmPaint ControlStyles を設定すると、Visual Studio 2003 で DoubleBuffer、UserPaint、および AllPaintingInWmPaint ControlStyles を設定した場合と同様に、ちらつきの最適化が減少します。言い換えれば、OptimizedDoubleBuffer と廃止された DoubleBuffer の間に違いはないようです。
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=94096