2009-08-05 3 views
2

Мне нужно обновить элементы управления в форме, для этого я использую this.Refresh(), но форма мерцает. Как я могу плавно обновлять элементы управления?Обновить все элементы управления на форме

Использование Application.DoEvents() делает это плавно, но это хорошая идея обновить, используя Application.DoEvents()?

ответ

0

Если форма мерцает, это означает, что она уже получает много обновлений, которые заставляют ее перерисовывать.

Вы должны профиль, если возможно, посмотреть, что вызывает все обновления, и попробовать и вырезать некоторые, так как там будут явно дубликаты.

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

Как правило, лучше избегать перекачки контура сообщения (т. Е. Вызов Application.DoEvents()), поскольку он может просто вызвать чрезмерную окраску и более мерцание не менее. Помните, что он заставляет обрабатывать ВСЕ события, а не только рисовать.

Смежные вопросы