Предотвратить рисование формы .NET во время загрузки формы? - PullRequest
2 голосов
/ 14 июня 2010

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

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

Ответы [ 3 ]

6 голосов
/ 14 июня 2010

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

1 голос
/ 14 июня 2010

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

Отключить рисование панели прокрутки в System.Windows.Forms.RichTextBox

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

1 голос
/ 14 июня 2010

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

Другой подход, который будет работать с дочерними элементами текст ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...