Form schließen und weitere Methode aufrufen
-
Hallo, ich wollte wenn das weiße X oben rechts gedrückt wird weitere Aktionen durchführen. Also habe ich mir eine Methode geschrieben. Und mittels folgender Zeile darauf verwiesen.
this->Closed += gcnew System::EventHandler(this, &MainWindow::MyCloseAll);
Jedoch bekomme ich immer eine StackOverflowException
Weil der beim Schließen jedesmal in die folgende Methode springt.public: void MyCloseAll(System::Object^ sender , System::EventArgs^ e){ this->Close(); // Hier springt der rein zigmal bis Stackoverflow }
Kommentiere ich die erste Codezeile aus gibt es kein Problem. Ich vermute das ich den EventHandler falsch verwende
Vielleicht habt ihr ja einen Tipp für mich was ich falsch mache
-
this->Close(); ruft wieder den Closed Handler auf worauf du wieder Close aufrufst worauf wieder der Closed Handler aufgerufen wird...
Das gibt den Stackoverflow.
Mach das Close weg und alles wird gut.
Was möchtest Du denn erreichen?
Simon
-
Ahh jetzt weis ich auch warum der dahin springt.
Ok ich bin gerade dabei das Grund gerüst zu schaffen. Später sollen an der Stelle noch diverse Geräte die offen sind geschlossen werden. In der Oberfläche kann im Mainmenü als auch per weißem X die Software beendet werden. So dachte ich mir schaffe ich eine Methode in der Zentral das Schließen und entfernen der Geräte übernommen wird.
Wie könnte man das denn erreichen, das per weißem X die andere Methode geöffnet wird?
Ich habe auch gelesen das Closed veraltet ist und statt dessen FormClosed-Ereignis
verwendet werden soll das hat aber keine Auswirkungen darauf oder?
-
Ok ich stand gerade auf dem Schlauch
Habe jetzt das
this->close
aus der Methode MyCloseAll entfernt und in der Methode für das Schließen per MainMenu integriert. Und beide springen noch zusätzlich in die eigene Methode wo ich die Geräte entfernen kann. Aber da Form::Closed veraltet ist habe ich gleich Form::FormClosed verwendet.
Danke nochmals