У меня есть проект Windows Forms (C #) с несколькими комбинированными списками / списками и т. Д., Которые заполняются при загрузке формы.
Проблема заключается в том, что загрузка комбинированных списков / списков происходит медленно, и поскольку загрузка выполняется, когда форма пытается отобразить всю форму, она не отображается, пока не будут заполнены все элементы управления. В некоторых случаях это может быть более 20 секунд.
Если бы было событие типа Form_finished_loaded, я мог бы поместить туда свой код, но я не могу найти событие, которое вызывается после того, как форма завершает рисование основных элементов управления.
У меня есть одно требование - загрузка должна выполняться в главном потоке (так как я получаю элементы из дружественного к потокам COM-приложения).
Я нашел одно потенциальное решение, но, возможно, есть лучший способ?
Я могу создать System.Timer.Timer при создании формы и сделать так, чтобы первый тик вызывался примерно через 1 секунду, а затем заполнял списки из этого тика. Это дает форме достаточно времени для отображения, прежде чем она начнет заполнять списки.
У кого-нибудь есть другие советы о том, как отложить загрузку элементов управления?