Как вызвать метод в UserControl после его отображения?

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

Большинство моих объединенных коммуникаций имеют несвязанный DataGridView, который необходимо заполнить при создании объединенных коммуникаций. Иногда может быть добавлено 50 000 строк из базы данных SQL Server.

До сих пор я заполнял сетки во время конструктора UC, но с тех пор, как мы начали работать с 50 000 строк, все изменилось. Я обнаружил, что заполнение сетки 50 000 строк из конструктора по какой-то безумной причине занимает не менее 15 минут. Однако, если я буду ждать заполнения сетки, пока я не нажму кнопку или из события Load, это займет 15 секунд. Это загадка. Итак, я пытаюсь переместить загрузку сетки в другое место.

Однако, когда я пытаюсь заполнить сетку из события Load, возникают визуальные несоответствия. Что происходит, Если вы видите, что появляется небольшая версия моего UC, загрузка строк DGV занимает 15 секунд, и ЗАТЕМ UC расширяется, чтобы заполнить панель (для свойства UC Dock установлено значение Fill). Так что мне тоже не нравится этот вариант.

Событие Shown было бы идеальным местом для загрузки моей сетки, если бы оно существовало для UC. Кто-нибудь знает другой способ сделать это?

16
задан Quintin Robinson 12 January 2011 в 18:23
поделиться