Как при открытии приложения, загрузить форму Form2 в фоновом режиме, при условии, что сначала загружается FormMain (основная форма, при открытии приложения)?
При нажатии на pictureBox открывается Form2 внутри panelMain, но на ее открытие тратится около двух секунд, т.к. на Form2 много ресурсов.
Ответ
Я задавался похожим вопросом и нашёл ответ. Поэтому рекомендую метод расширения
public static class FormHelper
{
public static void ShowInvisible(this Form form)
{
// сохраняем параметры окна
bool needToShowInTaskbar = form.ShowInTaskbar;
FormWindowState initialWindowState = form.WindowState;
// делаем окно невидимым
form.ShowInTaskbar = false;
form.WindowState = FormWindowState.Minimized;
// показываем и скрываем окно
form.Show();
form.Hide();
// восстанавливаем параметры окна
form.ShowInTaskbar = needToShowInTaskbar;
form.WindowState = initialWindowState;
}
}
Затем в констукторе MainForm и при клике на pictureBox
public class MainForm
{
private readonly Form2 _form2 = new Form2();
public MainForm()
{
InitializeComponent();
_form2.ShowInvisible();
}
private void PictureBox_Click(object sender, EventArgs e)
{
_form2.Show();
}
}
Комментариев нет:
Отправить комментарий