Как избежать мерцания экрана при отображении формы с нарисованными пользователем элементами управления? - PullRequest
7 голосов
/ 21 октября 2008

Итак, проблема прозрачного фона решена. Теперь, каждый раз, когда я показываю форму (или мне нужно перекрасить ее), я получаю много мерцания. Есть ли способ, которым я не могу обновить экран, пока событие рисования не завершится, или каким-либо другим способом остановить мерцание и мигание на 1/2 секунды, пока все объекты окрашиваются?

ОТВЕТ : Двойная буферизация - это путь. У меня уже была двойная буферизация на элементе управления, но она должна быть установлена ​​в форме. Хотя двойная буферизация работала только тогда, когда вы сами подклассировали OnPaint.

Ответы [ 3 ]

10 голосов
/ 21 октября 2008

Вы пытались установить свойство DoubleBuffered для формы?

5 голосов
/ 21 октября 2008

Двойная буферизация может помочь, еще одна вещь, которую вы можете попробовать:

SuspendLayout ();

dostuffhere ...

ResumeLayout ();

2 голосов
/ 21 октября 2008

Установите свойство DoubleBuffered в форме.

...