16

ControlStyles.DoubleBufferControlStyles.OptimizedDoubleBufferの違いは何ですか?

ControlStyles.DoubleBufferは Intellisense ドロップダウンに表示されませんが、ControlStyles.OptimizedDoubleBufferは実際にリストされています。

MSDN のドキュメントでは、違いがすぐにはわかりません (少なくとも私には)。

4

2 に答える 2

10

この件に関するスレッドを見つけました。

注: 以下は、保護されたControlプロパティに関するものであり、次のものではありませんControlStyles

DoubleBuffered = true は、ControlStyles.OptimizedDoubleBuffer と ControlStyles.AllPaintingInWmPaint の両方を設定します。

WinForms のドキュメントによると、上記が推奨される使用法です。または、 を介して ControlStyle を設定することもできますSetStyle

ある時点で、DoubleBuffer を非推奨にし、代わりに OptimizedDoubleBuffer の使用を採用することを意図していましたが、スレッドは、それが悪い考えである理由について説明します (私には理解できません)。

全体の状況が少し混乱しているように見えますが、最終的にこれら 2 つのフラグは非常によく似た動作をします。スレッドは、OptimizedDoubleBuffer と DoubleBuffer の間にまだ微妙な違いがあることを示していますが、それらが何であるかについては説明していません。

于 2009-12-27T22:54:02.707 に答える
5

面白い。ウェブで検索するように私を導きます。

マイクロソフトから

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

于 2009-12-27T22:44:05.180 に答える