Для ускорения Я думал о создании только первой страницы, и когда форма видна и пользователь работает над первой страницей, то динамически создает другие страницы в фоновом режиме.
Я пробовал это с фоновым рабочим в тестовой форме, и это работает (я немного удивлен, лол). Можно ли/должны ли создавать элементы управления в потоках, отличных от ui? я добавил кнопку в свою тестовую форму, чтобы изменить цвет метки и текст метки, созданной в фоновом рабочем режиме, и это тоже работает...? До сих пор удивлен
Код: Выделить всё
private void backgroundWorker1_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
{
Thread.Sleep(5000);
var label = new Label();
label.BackColor = Color.Red;
label.Text = "test";
label.TextChanged += (_, _) => MessageBox.Show("Whaaaat?");
backgroundWorker1.ReportProgress(0, label);
}
private void backgroundWorker1_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
{
Label label = (Label)e.UserState;
this.Controls.Add(label);
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... a-formular