Invalidate, Refresh, Update
От: Аноним  
Дата: 20.11.08 11:12
Оценка:
Не могу понять в чем разница между этими методами?
Re: Invalidate, Refresh, Update
От: Rius Россия  
Дата: 20.11.08 11:21
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Не могу понять в чем разница между этими методами?


There are two ways to repaint a form and its contents:

You can use one of the overloads of the Invalidate method with the Update method.

You can call the Refresh method, which forces the control to redraw itself and all its children. This is equivalent to setting the Invalidate method to true and using it with Update.

The Invalidate method governs what gets painted or repainted. The Update method governs when the painting or repainting occurs. If you use the Invalidate and Update methods together rather than calling Refresh, what gets repainted depends on which overload of Invalidate you use. The Update method just forces the control to be painted immediately, but the Invalidate method governs what gets painted when you call the Update method.
Re[2]: Invalidate, Refresh, Update
От: Аноним  
Дата: 20.11.08 12:51
Оценка:
Здравствуйте, Rius, Вы писали:

R>Здравствуйте, Аноним, Вы писали:


А>>Не могу понять в чем разница между этими методами?


R>There are two ways to repaint a form and its contents:


R>You can use one of the overloads of the Invalidate method with the Update method.


R>You can call the Refresh method, which forces the control to redraw itself and all its children. This is equivalent to setting the Invalidate method to true and using it with Update.


R>The Invalidate method governs what gets painted or repainted. The Update method governs when the painting or repainting occurs. If you use the Invalidate and Update methods together rather than calling Refresh, what gets repainted depends on which overload of Invalidate you use. The Update method just forces the control to be painted immediately, but the Invalidate method governs what gets painted when you call the Update method.


MSDN я читал, только не все понял. Бот, например пишу Invalidate без Update, а контрол все- равно перерисовываетыся. Он что сам приходит(происходит)?
Re[3]: Invalidate, Refresh, Update
От: Rius Россия  
Дата: 20.11.08 13:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>MSDN я читал, только не все понял. Бот, например пишу Invalidate без Update, а контрол все- равно перерисовываетыся. Он что сам приходит(происходит)?

Да, сам, когда винде удобно, тогда перерисовывает сама.
Re[4]: Invalidate, Refresh, Update
От: Аноним  
Дата: 20.11.08 13:19
Оценка:
Здравствуйте, Rius, Вы писали:

R>Здравствуйте, Аноним, Вы писали:


А>>MSDN я читал, только не все понял. Бот, например пишу Invalidate без Update, а контрол все- равно перерисовываетыся. Он что сам приходит(происходит)?

R>Да, сам, когда винде удобно, тогда перерисовывает сама.

Спасибо!
Re[3]: Invalidate, Refresh, Update
От: Pavel M. Россия  
Дата: 20.11.08 13:49
Оценка:
Здравствуйте, Аноним, Вы писали:


А>MSDN я читал, только не все понял. Бот, например пишу Invalidate без Update, а контрол все- равно перерисовываетыся. Он что сам приходит(происходит)?


Refresh перерисовывает немедленно контрол, вроде даже блокирующий метод. Invalidate говорит о том, что область на контроле не валидная, его необходимо перерисовать, на что ОС решает и выделяет время в удобный момент.
Когда Вы разрабатываете свой контрол, то иногда критично пользоваться Refresh, например, когда происходит скроллинг (вручную) и нужно отобразить пользователю процесс скролинга, потому что если использовать Invalidate, то за то время, пока пользователь дернул скрол, не произойдет большого количества перерисовываний, а, скорее всего, контрол отрисуется уже в конечном состоянии.
--------------------------
less think — do more
Re[4]: Invalidate, Refresh, Update
От: Аноним  
Дата: 20.11.08 16:15
Оценка:
Здравствуйте, Pavel M., Вы писали:

PM>Здравствуйте, Аноним, Вы писали:



А>>MSDN я читал, только не все понял. Бот, например пишу Invalidate без Update, а контрол все- равно перерисовываетыся. Он что сам приходит(происходит)?


PM>Refresh перерисовывает немедленно контрол, вроде даже блокирующий метод. Invalidate говорит о том, что область на контроле не валидная, его необходимо перерисовать, на что ОС решает и выделяет время в удобный момент.

PM>Когда Вы разрабатываете свой контрол, то иногда критично пользоваться Refresh, например, когда происходит скроллинг (вручную) и нужно отобразить пользователю процесс скролинга, потому что если использовать Invalidate, то за то время, пока пользователь дернул скрол, не произойдет большого количества перерисовываний, а, скорее всего, контрол отрисуется уже в конечном состоянии.
Все, разобрался! Спасибо!