Как предотвратить задержку загрузки UserControl в TabControl? - PullRequest
3 голосов
/ 09 ноября 2010

Я только что обнаружил, что UserControls в TabControl не будет загружаться, пока не будет выбран родительский TabPage. Есть ли способ предотвратить эту задержку загрузки? Мне нужно инициализировать пользовательские элементы управления при загрузке основной формы.

Ответы [ 3 ]

2 голосов
/ 09 ноября 2010

TabControl специально не обрабатывает свои элементы управления, фактически при любых обстоятельствах нормально происходит событие Load на UserControl непосредственно перед первым отображением элемента управления.TabPage отвечает за отображение элемента управления, поэтому он будет «загружен» только при первом выборе.

Чтобы преодолеть это (совершенно нормальное) поведение Windows Forms, вы можете переместить код инициализации в отдельный методи вызывать его, когда загружается Form, или вместо этого вы можете просто поместить свой код инициализации в конструктор UserControl.В любом случае, вы можете выполнить инициализацию немедленно.

1 голос
/ 08 мая 2012

Вы можете вызывать метод TabTontrol SelectTab () для вкладок в обработчике события Load вашей формы.

0 голосов
/ 12 февраля 2012

Я просто искал, как добиться описанного вами поведения по умолчанию. Приложение, которое я поддерживаю, не задерживает загрузку вкладок. Оказывается, вкладки инициализировались в событии загрузки вместо конструктора.

Поэтому, если вы добавляете вкладки в tabcontrol в событии загрузки формы, все элементы управления во вкладках будут запускать события загрузки как часть вызова TabPages.AddRange

...