Каково различие между Обновлением, Обновлением и Перекрашиванием?

Мой фаворит полускрытая функция Perl eof функция. Вот пример в значительной степени непосредственно от perldoc -f eof это показывает, как можно использовать его для сброса имени файла и $. (текущий номер строки) легко через несколько файлов, загруженных в командной строке:

while (<>) {
  print "$ARGV:$.\t$_";
} 
continue {
  close ARGV if eof
}
42
задан w5m 11 March 2016 в 12:34
поделиться

2 ответа

Согласно онлайн-документации.

Обновить - перерисовывает элемент управления на экране.

Вызов метода обновления для перерисовки контроль немедленно. Refresh вызывает Метод перекраски. Используйте Обновить и Методы перерисовки взаимозаменяемы.

Repaint - Заставляет элемент управления перерисовывать свое изображение на экране.

Вызов Repaint, чтобы заставить элемент управления перейти на немедленно перекрасить его изображение. Если Свойство ControlStyle включает csOpaque, элемент управления раскрашивает себя прямо. В противном случае перекрасить вызывает метод Invalidate и затем метод Update, чтобы любой видимые части элементов управления внизу элемент управления также будет перерисован.

Обновление - Немедленно обрабатывает все ожидающие сообщения рисования.

Вызов Update, чтобы заставить элемент управления быть перекрашивать перед тем как больше, возможно трудоемкий, обработка занимает место. Используйте обновление для немедленного предоставления обратная связь с пользователем, которая не может ждать для сообщения Windows Paint в прибыть.

Обновление не отменяет контроль, но просто принудительно перекрасить любых регионов, которые уже были признан недействительным. Вместо этого вызовите Repaint, чтобы также сделать элемент управления недействительным.

41
ответ дан 26 November 2019 в 23:44
поделиться

На ваш вопрос уже дан ответ, но если вам нужна хорошая производительность и меньше мерцания, вам следует вместо этого вызвать Invalidate. Это позволяет Windows оптимизировать процесс рисования.

Invalidate - полностью перерисовать элемент управления.

Использовать Invalidate, когда весь элемент управления нужно перекрасить. Когда более чем один регион в пределах контроля нуждается перекраски, недействительный вызовет все окно будет перекрашено в за один проход, избегая мерцания, вызванного избыточными перекрашивками. Здесь нет штраф за вызов Сделать недействительным несколько раз до фактически перекрашивается.

34
ответ дан 26 November 2019 в 23:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: