C# Form schliessen aber Anwendung läuft weiter....

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...


Gorwar 
Beitragsersteller
 01.11.2012, 19:10

wie kann man Close-Event des Hauptfensters abfangen?

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();

Toraka  19.11.2012, 23:45

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.