In meinem Programm zeige ich ein Login-Formular vor dem Hauptformular, sobald das Programm eine erfolgreiche Anmeldung feststellt, verwende ich dies:
%Vor%Das funktioniert gut, aber es gibt ein Problem, das Anmeldeformular ist immer noch geöffnet, obwohl es versteckt ist. Wenn das Programm geschlossen wird, bleibt der Prozess hängen. Wie kann ich das verhindern?
Sorry, habe vergessen hinzuzufügen, this.Close();
funktioniert nicht und schließt das Programm vollständig.
Sie müssen Ihre MainForm
angeben, wenn Sie die Anwendung anstarren, und im Ereignishandler Load
dieses Formulars nach dem Login fragen. In diesem Fall haben Sie die Anwendung und Login
für den Start ausgeführt:
Programm.cs
%Vor%MainForm.cs
%Vor% P.S. Close
schließt Ihre Anwendung vollständig, wenn es die Hauptform Ihrer Anwendung ist.
Versuchen Sie etwas mehr wie folgt:
%Vor%Sie möchten das Anmeldeformular ausblenden, bevor Sie das Dialogfeld anzeigen. Schließen Sie anschließend das Anmeldeformular, nachdem das Dialogfeld geschlossen wurde.
Wenn Sie einfach den Anmeldedialog schließen, wird die Anwendung letztendlich beendet. Das ist keine echte Lösung, aber Sie möchten die Anmeldung dennoch ausblenden.
Stellen Sie einfach die Dinge in die Reihenfolge, in die sie gehen sollen, besonders wenn es sich um Nachrichtenschleifen handelt.
Zuerst verstecken Sie das Login-Formular.
Als Nächstes zeigen Sie den Hauptformulardialog an, aber verhindern Sie, dass der Aufrufer von "ShowDialog ()" fortgesetzt wird, bis der Dialog geschlossen wird.
Zuletzt, wenn der Dialog geschlossen ist, schließen Sie das Anmeldeformular und beenden Sie die Anwendung.
Ändern Sie das Hauptformular in MainForm
, und wenn die Anwendung gestartet wird, starten Sie in Ihrem MainForm_Load
das Anmeldeformular als Dialogfeld, damit sie nicht auf das Hauptformular zugreifen können.
Application.Exit(0);
SetVisibilityCore
und rufen Sie innerhalb MainForm_Load
. Sie können ApplicationContext.MainForm
verwenden. , um das aktuelle Hauptformular für die Anwendung anzugeben:
dann in Login-Handler:
%Vor%