2010-06-14 3 views
2

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

Я просмотрел SuspendLayout и ResumeLayout, но либо я не понимаю, что они делают, либо я неправильно их использую, потому что они, похоже, не имеют никакого эффекта. Кто-то сказал мне, что раньше можно было отключить события рисования в VB 6. Все еще существует в .NET?

ответ

6

Для главного окна самое простое - создать окно скрытым, сделать все ваши вещи, а затем показать окно. Таким образом, у вас будет одна полная перерисовка, а некоторые части макета выполняются один раз.

1

Override OnPaint и OnPaintBackground в вашей форме/контроле. Когда установлен флаг, не вызывайте базовую реализацию методов.

Другой подход, который будет работать с детьми link text

+0

Это также должно работать в ситуациях, не зависящих от начального запуска. – Nate

+0

Это работает и для всех детей? – OregonGhost

1

Существует неуправляемый подход, который, кажется, работает лучше всего (по крайней мере в моем опыте):

Disable Painting of the VScrollbar in a System.Windows.Forms.RichTextBox

Вопрос идет о Scrollbar но Я использовал метод с формами несколько раз, так как знаю, как это сделать. Неважно, что для контроля есть, если вы не знаете ручку (Me.Handle)

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