Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как различаются между собой Paint-события: Invalidate, Update и Refresh?

Delphi , Компоненты и Классы , Свойства и События

Как различаются между собой Paint-события: Invalidate, Update и Refresh?

Invalidate весь объект перерисовывается заново; обычно перерисовывается только часть бывшая перед этим закрытой

 

Update незамедлительная перерисовка

 

Refresh Invalidate + Update

Here is the translation of the text into Russian:

Вопрос о событиях рисования в Windows Forms!

В Windows Forms методы Invalidate, Update и Refresh - три связанных метода, которые можно использовать для управления процессом рисования контрола. Вот что каждый из них делает:

  1. Invalidate: Этот метод маркирует весь контрол как needing to be redrawn (недостаточно). Когда вы вызываете Invalidate, Windows Forms отправляет сообщение о рисовании (WM_ PAINT) контролу, который затем рисует себя целиком заново от начала. Обратите внимание, что это не обязательно significa, что весь контрол действительно будет перерисован; это просто значит, что Windows Forms думает, что он может быть перерисован. Когда вы используете Invalidate, вы essentially говорите Windows Forms: "Прошу, я думаю, что что-то изменилось, поэтому пожалуйста, перерисуйте меня!" Это может произойти, когда изменяется свойство (например, текст метки), или когда размер или положение контрола изменяются.

  2. Update: Этот метод отправляет сообщение о рисовании (WM_ PAINT) контролу сразу, не дожидаясь, пока Windows Forms определит, что контрол needs to be repainted. В других словах, Update forces контрол repaint himself right away. Когда вы используете Update, вы essentially говорите Windows Forms: "Я знаю, что что-то изменилось, поэтому пожалуйста, перерисуйте меня сейчас!" Это может быть полезно, когда вам нужно обеспечить, что контрол будет обновлен сразу, а не дожидаясь следующего сообщения о рисовании.

  3. Refresh: Ах, но что это? Refresh - это просто псевдоним для Invalidate, последовавший за Update. Поэтому, когда вы вызываете Refresh, это эквивалентно вызову обоих Invalidate и затем Update. В других словах, Refresh говорит: "Прошу, я думаю, что что-то изменилось, поэтому invalidate меня (т. е. маркируйте меня как needing to be repainted) и then update me right away!" Это удобный короткий путь, когда вам нужно both invalidate и immediately repaint контрол.

В целом:

  • Invalidate: Маркирует контрол as needing to be repainted (но не forces его рисовать).
  • Update: Forces контрол repaint himself immediately.
  • Refresh: Invalidate and then update контрол, все в одном удобном методе! Надеюсь, это поможет вам лучше понять разницу между этими тремя методами. Пожалуйста, дайте мне знать, если у вас есть какие-либо дополнительные вопросы!

Paint-события в Windows Forms делятся на три типа: Invalidate, который приводит к полному перерисованию объекта, Update, который обеспечивает немедленную перерисовку только закрытой части объекта, и Refresh, который является комбинацией этих двух процессо


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Свойства и События ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-10 07:13:18
2024-05-19 15:26:52/0.0063989162445068/0