C# Form schliessen aber Anwendung läuft weiter....
so meine Problem : Ich habe ein Login Fenster programmiert. Wenn der Benutzer sich eingeloggt hat öffnet sich ein andere Fenster :
Haupt hauptfenster = new Haupt(); hauptfenster.Show(); hauptfenster.Focus(); this.Hide();
auf zweite Fenster läuft die tatsächliche Anwendung. Das Problem, dass ich habe ist folgendes: wenn ich die richtige Anwendung über rote X Button von Windows schlisse, wird das Fenster zwar geschlossen aber die Anwendung bleibt noch geöffnet. Der Grund ist auch mir bewusst da die Loggin Form immer noch geöffnet ist. Ich möchte also das Hauptanwendungsfenster Schließen und dadurch soll sich die gesamt Anwendung auch beenden. WICHTIG ( ich will keine extra Button „ Close „ selber hinzufügen : Also so was wie Application.Exit(); kenne ich bereits. Ich möchte dass man das Fenster mit X Button von Windows schließt
3 Antworten
undgetestet... fang das Close-Event des Hauptfensters in der Anwendung ab, in der es erstellt wird ab und schließe dort die Anwendung, also in der Art: hauptfenster.Close+= delegate...
Lösungswege:
1) Schließe das Login-Fenster mittels this.Close(); anstatt this.Hide();
2) Merke dir das Login-Fenster, indem du dem Hauptfenster einen Zeiger übergibst und schließe das Form, bevor du das Hauptform schließt. Wie? Ändere den Konstruktor deines Hauptforms wie folgt (Bezeichnung des Forms entsprechend anpassen):
private FormLogin m_frmLogin = null;
public FormHaupt(FormLogin frmLogin)
{
InitializeComponent();
m_frmLogin = frmLogin;
}
private void FormHaupt_FormClosing(object sender, FormClosingEventArgs e)
{
If(m_frmLogin != null)
m_frmLogin.Close();
}
Den Aufruf des Hauptforms änderst du so, dass in der Klammer ein "this" als Parameter steht. Beispiel:
FormHaupt frm = new FormHaupt(this);
frm.Show();
this.Hide();
Eine Rückmeldung wäre schön! Ob du es einwandfrei übernehmen konntest, und ob es funktionierte.
Wieso schließt du das Anmeldefenster nciht einfach, nach der (erfolgreichen) Anmeldung? Dann ists schon lange weg, wenn das Hauptprogrammfenster geschlossen wird und blockiert dein Programm auch nicht mehr.