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?

0

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.

0

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.