Zeigen Sie das Hauptformular nach erfolgreicher Anmeldung an, ohne die Anwendung zu verlassen
In Windows Forms-Anwendungen wird das Programm normalerweise durch Schließen des Hauptformulars beendet. In einigen Fällen müssen Sie jedoch möglicherweise das Anmeldeformular schließen und das Hauptformular starten, ohne die Anwendung zu beenden. Dieser Artikel untersucht dieses Problem und bietet eine Lösung.
Frage:
Ein Benutzer erstellt ein Windows Forms-Projekt, das zwei Formulare enthält: ein Anmeldeformular und ein Hauptformular. Nach erfolgreicher Anmeldung besteht das Ziel darin, das Anmeldeformular zu schließen und das Hauptformular anzuzeigen. Durch das Schließen des Anmeldeformulars mit der Methode Close() wird jedoch nicht das Hauptformular geöffnet und die Anwendung wird beendet.
<code class="language-c#">public void ShowMain() { if (auth()) { var main = new Main(); main.Show(); this.Close(); } else { MessageBox.Show("Invalid login details."); } }</code>
Lösung:
Das Problem besteht darin, dass beim Schließen des Anmeldeformulars auch die Anwendung geschlossen wird. Die Lösung besteht darin, die Anmeldelogik vom Anmeldeformular in die Datei Program.cs zu verschieben. Starten Sie dann nach erfolgreicher Anmeldung das Hauptformular mit Application.Run().
<code class="language-c#">static void Main() { LoginForm fLogin = new LoginForm(); if (fLogin.ShowDialog() == DialogResult.OK) { Application.Run(new MainForm()); } else { Application.Exit(); } }</code>
Erstellen Sie in Program.cs ein modales Anmeldeformular (fLogin) und zeigen Sie es als Dialogfeld an. Wenn der Benutzer gültige Anmeldeinformationen angibt, gibt ShowDialog() DialogResult.OK zurück und löst die Erstellung einer neuen MainForm-Instanz über Application.Run() aus. Andernfalls wird die Anwendung beendet (Application.Exit()).
Das obige ist der detaillierte Inhalt vonWie zeige ich das Hauptformular nach erfolgreicher Anmeldung in einer Windows Forms-Anwendung an, ohne die App zu schließen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!