Используйте двойную буферизацию, чтобы предотвратить мерцание при рисовании на C#
Пример
При использовании двойной буферизации система выделяет отдельный фрагмент памяти для хранения изображения формы. Когда обработчик события Paint рисует форму, система использует этот образ в памяти. Когда он будет завершен, система отобразит изображение формы одновременно. Если рисунок сложный, как в этом примере, это предотвращает просмотр пользователем мерцающего изображения по мере того, как программа рисует его.
Когда вы проверяете этот флажок Double Buffer этого примера, программа включает или отключает двойную буферизацию и затем перерисовывает. Вы также можете нажать кнопку «Перерисовать», чтобы принудительно выполнить перерисовку.
Следующий код показывает, как этот флажок включает и выключает двойную буферизацию.
// Включение и выключение двойной буферизации и перерисовка. private void chkDoubleBuffer_CheckedChanged( object sender, EventArgs e) { this.DoubleBuffered = chkDoubleBuffer.Checked; this.Refresh(); }
Когда двойная буферизация выключена, вы должны увидеть мерцание. Когда включена двойная буферизация, перерисовывание происходит так гладко, что вы, вероятно, ничего не заметите. Измените размер формы, чтобы сделать более заметным изменение.