2013-05-27 2 views
1

У меня есть несколько форм, из которых создаваемые элементы управления создаются и/или инициализируются во время выполнения. Я делаю это в событии Load, но все же, когда отображается форма, я все еще вижу, что некоторые формы инициализируются.Скрыть создание/инициализацию элементов управления формы

В моем понимании событие Load происходит до отображения формы, поэтому это не должно быть проблемой.

Что мне здесь не хватает или что я могу сделать, чтобы этого не случилось?

+1

Общепринятой ошибкой считается, что форма, которая медленно рисуется, потому что у нее много элементов управления, занята «инициализацией». Попробуйте минимизировать и восстановить его. –

+0

@Hans, Что вы предлагаете делать в коде? Форма инициализируется правильно; Я просто не хочу видеть, как это происходит. –

+1

Создайте элементы внутри конструктора вместо загрузки. Точно так же, как сгенерированный автоматически код InitializeComponent(), который находится внутри конструктора формы. – loopedcode

ответ

0

Попробуйте сделать форму невидимой в costructor и после инициализации среды выполнения в Load обработчик события завершен, покажите это. Или вы можете попробовать переопределить способ OnLoad() в своей собственной форме и поставить base.OnLoad() после выполнения заказа.

1

Создайте свои элементы внутри конструктора вместо загрузки. Подобно автогенерированному коду InitializeComponent(), который находится внутри конструктора форм, вы можете создавать экземпляры ваших элементов управления и других объектов после этой строки по мере необходимости.

2

Try вызова this.SuspendLayout(); в начале вашего Load Event и вызвать this.ResumeLayout(); в последней строке события нагрузки.