Подтвердить что ты не робот

ControlStyles.DoubleBuffer против ControlStyles.OptimizedDoubleBuffer

В чем разница между ControlStyles.DoubleBuffer и ControlStyles.OptimizedDoubleBuffer?

ControlStyles.DoubleBuffer не отображается в раскрывающемся списке Intellisense, тогда как ControlStyles.OptimizedDoubleBuffer фактически указан.

Документация MSDN не сразу делает разницу (по крайней мере, для меня).

4b9b3361

Ответ 1

Я нашел этот поток по теме:

DoubleBuffered = true устанавливает как ControlStyles.OptimizedDoubleBuffer AND ControlStyles.AllPaintingInWmPaint.

В какой-то момент было намерение отказаться от DoubleBuffer и вместо этого использовать OptimizedDoubleBuffer, однако поток идет по причинам, почему это может быть плохой идеей (что я не понимаю)

Похоже, что вся ситуация немного запуталась, однако в конечном счете эти два флага делают очень похожие вещи - поток указывает на то, что между OptimizedDoubleBuffer и DoubleBuffer все еще существуют тонкие различия, но не объясняет, что они собой представляют.

Ответ 2

Интересно. Подведите меня к поиску в Интернете.

от Microsoft

Документация для OptimizedDoubleBuffer указывает, что это поможет уменьшить мерцание и имеет тот же эффект, что и установка параметров UserPaint и AllPaintingInWmPaint ControlStyles в true. Однако, если для параметра OptimizedDoubleBuffer ControlStyle установлено значение true без установки параметра UserPaint и AllPaintingInWmPaint, видимого уменьшения мерцания нет. Установка параметров UserPaint и AllPaintingInWmPaint ControlStyles приведет к такой же оптимизированной оптимизации мерцания, как и в Visual Studio 2003 при настройке DoubleBuffer, UserPaint и AllPaintingInWmPaint ControlStyles. Другими словами, между OptimizedDoubleBuffer и устаревшим DoubleBuffer нет никакой разницы.

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