Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
FormClosed wird nicht ausgeführt
Seba1986
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

FormClosed wird nicht ausgeführt

beantworten | zitieren | melden

private void formMain_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
            game.Exit();
        }

Wenn das betroffene Form geschlossen wird, soll die Application beendet werden, doch irgendwie wird dieser Abschnitt nie ausgeführt, irgendeine Idee?
private Nachricht | Beiträge des Benutzers
preli
myCSharp.de - Member

Avatar #avatar-2343.png


Dabei seit:
Beiträge: 343
Herkunft: Österreich

beantworten | zitieren | melden

Rufst du eventuell noch wo anders die Application.Exit() Funktion auf???

Zitat aus der MSDN:
Zitat
The Form..::.Closed and Form..::.Closing events are not raised when the Application..::.Exit method is called to exit your application. If you have validation code in either of these events that must be executed, you should call the Form..::.Close method for each open form individually before calling the Exit method.

Soll heißen wenn du Application.Exit() aufrufst, werden FormClosed und FormClosing nicht ausgeführt! Das könnte ein Grund sein.

Ach übrigens, du brauchst Application.Exit() nicht aufrufen wenn das Hauptformular geschlossen wird, dann beendet das Programm nämlich von alleine. Und wenn das da unten nicht von deinem Hauptformular ist würd ich den Namen formMain in etwas anderes ändern

Gruß
Preli
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

Zitat
du brauchst Application.Exit() nicht aufrufen wenn das Hauptformular geschlossen wird, dann beendet das Programm nämlich von alleine.

meistens ja. generell hängt es davon ab, was noch alles in der main steht ;-)
Seba1986
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

Ich muss leider Application.Exit() ausführen, da es zwar mein MainForm ist, aber nicht der einzige Prozess der läuft ;). Wenn ich das Form schließe über das x in der Titelleiste, schließt es, aber das Programm läuft weiter, also scheinbar wird Application.Exit() nie erreicht (mit msgbox getestet).
Meine Frage ist nur wieso wird diese nie erreicht? Der Titel vom form ist leider richtig und auch ansonsten kann ich keinen Fehler entdecken.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Seba1986,

ist der EventHandler formMain_FormClosed überhaupt für das FormClosed-Event von (dem richtigen) formMain registriert?

herbivore
private Nachricht | Beiträge des Benutzers
Seba1986
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

Jetzt fühle ich mich wie ein Idiot, aber da ich noch nicht wusste das man das muss, wie geht das ;)?
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Seba1986,

du solltest dich nicht gleich schlecht fühlen, nur weil du was nicht wusstest. Auch dann nicht, wenn es etwas ist, was wir im Rahmen von [Hinweis] Wie poste ich richtig? Punkt 1.1.1 als bekannt voraussetzen. Du solltest das nur zum Anlass nehmen, dich mal in Ruhe damit zu beschäftigen.

Hier nur kurz, worum es geht:

formMain.FormClosed += formMain_FormClosed;

herbivore
private Nachricht | Beiträge des Benutzers