Укрытие Form1 перед открытием Form2
Использует это .hide (); до showdialog () .
ille, form1 кратко появляется перед Form3 .
Настройка Top Most = true для form3 - без улучшения.
Использование begininvoke () для задержки Form3 загрузка
Явно настройка Form2 владелец
Как Неужели я предотвращаю Form1 снова появиться снова между Form2 закрытием и открытием Form3 ? Есть ли способ плавно переходить из Form2 → Form3 без Form1 снова появится?
Я работаю над приложением C# winforms на .net 8.0 и сталкиваюсь с проблемой с переходами формы. < /p> У меня есть три формы: < /p> [list] [*][code]Form1[/code] - начальный экран (основная форма) [*][code]Form2[/code] - экран пароля (модальный диалог) [*][code]Form3< /code> - конечная форма назначения < /li> < /ul> Ожидаемый поток: < /p>
Пользователь нажимает кнопку на Form1 [/code], которая открывает Form2 для ввода пароля [*] После успешной аутентификации Form3 должен быть открыт [*][code]Form1[/code] не должно появляться снова после Form2 закрыть [/list] Фактическое поведение: [list] [*][code]Form1[/code] Opens Form2 (экран пароля) успешно [*] Пользователь вводит пароль и представляет [*] перед Form3 появляется , Form1 Кратко мерцает и появляется на второй [*] После этого Form3 загружается правильно [*] Это короткое мерцание формы11 неожиданно и вызывает плохой пользовательский опыт [/list] Вот как я обращаюсь > для аутентификации): < /p> [code]private void btnOpenForm2_Click(object sender, EventArgs e) { Form2 passwordForm = new Form2();
if (passwordForm.ShowDialog() == DialogResult.OK) // Blocking call { Form3 finalForm = new Form3(); finalForm.Show(); this.Hide(); // Hide Form1 } } [/code] код в Form2 (экран пароля): [code]private void btnSubmit_Click(object sender, EventArgs e) { // Assume authentication is successful this.DialogResult = DialogResult.OK;this.Close(); } [/code] Что я попробовал [list] [*] Укрытие Form1 перед открытием Form2 Использует это .hide (); до showdialog () .
ille, form1 кратко появляется перед Form3 .
Настройка Top Most = true для form3 - без улучшения. [*] Использование begininvoke () для задержки Form3 загрузка [*] Явно настройка Form2 владелец [/list] Как Неужели я предотвращаю Form1 снова появиться снова между Form2 закрытием и открытием Form3 ? Есть ли способ плавно переходить из Form2 → Form3 без Form1 снова появится?