Ich arbeite an einer C# WinForms -Anwendung auf .NET 8.0 und muss mit Formularen mit Formularen vorhanden sind.
[*]
- Anfangsbildschirm (Hauptformular)
[*]
- Passwortbildschirm (modales Dialogfeld)
[*]
Code: Select all
Form3< /code> - endgültiges Zielformular < /li>
< /ul>
Erwarteter Fluss: < /p>
[list]
Der Benutzer Klickt auf eine Schaltfläche in Form1
, die Form2 für den Kennworteintrag
[*] Nach erfolgreicher Authentifizierung sollte Form3 geöffnet werden
[*]
sollte nach Form2 nicht erneut angezeigt werden
[/list]
Tatsächliches Verhalten:
- öffnet Form2 (Kennwortbildschirm) erfolgreich
- Der Benutzer gibt das Kennwort ein und gibt
- vor, bevor Form3 angezeigt wird Form1 flackern kurz und erscheint für eine Sekunde
- Danach wird Form3 richtig geladen
- Dieser kurze Flicker von Form11 ist unerwartet und verursacht eine schlechte Benutzererfahrung
Hier ist, wie ich Formularübergänge abwickelte - Code in Form1 (öffnet Form2 zur Authentifizierung): < /p>
Code: Select all
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 in Form2 (Kennwortbildschirm):
Code: Select all
private void btnSubmit_Click(object sender, EventArgs e)
{
// Assume authentication is successful
this.DialogResult = DialogResult.OK;this.Close();
}
Was ich ausprobiert habe
- Versteckte Form1 Vor dem Öffnen von Form2
verwendet this.hide (); vor showdialog () . >.
Einstellen von TOPOST = True für Form3 - keine Verbesserung. Laden
- Einstellen von Form2 Besitzer
Wie
Verhindern Sie, dass Form1 zwischen Form2 Schließen und Form3 öffnen? Gibt es eine Möglichkeit, reibungslos von Form2 → Form3 ohne Form1 erneut zu erstellen?
Ich arbeite an einer C# WinForms -Anwendung auf .NET 8.0 und muss mit Formularen mit Formularen vorhanden sind.
[*][code]Form1[/code] - Anfangsbildschirm (Hauptformular)
[*][code]Form2[/code] - Passwortbildschirm (modales Dialogfeld)
[*][code]Form3< /code> - endgültiges Zielformular < /li>
< /ul>
Erwarteter Fluss: < /p>
[list]
Der Benutzer Klickt auf eine Schaltfläche in Form1 [/code], die Form2 für den Kennworteintrag
[*] Nach erfolgreicher Authentifizierung sollte Form3 geöffnet werden
[*][code]Form1[/code] sollte nach Form2 nicht erneut angezeigt werden
[/list]
Tatsächliches Verhalten:
[list]
[*][code]Form1[/code] öffnet Form2 (Kennwortbildschirm) erfolgreich
[*] Der Benutzer gibt das Kennwort ein und gibt
[*] vor, bevor Form3 angezeigt wird Form1 flackern kurz und erscheint für eine Sekunde
[*] Danach wird Form3 richtig geladen
[*] Dieser kurze Flicker von Form11 ist unerwartet und verursacht eine schlechte Benutzererfahrung
[/list]
Hier ist, wie ich Formularübergänge abwickelte - Code in Form1 (öffnet Form2 zur Authentifizierung): < /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]
Code in Form2 (Kennwortbildschirm):
[code]private void btnSubmit_Click(object sender, EventArgs e)
{
// Assume authentication is successful
this.DialogResult = DialogResult.OK;this.Close();
}
[/code]
Was ich ausprobiert habe
[list]
[*] Versteckte Form1 Vor dem Öffnen von Form2
verwendet this.hide (); vor showdialog () . >.
Einstellen von TOPOST = True für Form3 - keine Verbesserung. Laden
[*] Einstellen von Form2 Besitzer
[/list]
Wie [url=viewtopic.php?t=13275]Verhindern[/url] Sie, dass Form1 zwischen Form2 Schließen und Form3 öffnen? Gibt es eine Möglichkeit, reibungslos von Form2 → Form3 ohne Form1 erneut zu erstellen?