c# wenn form geschlossen wird event?
ich will das beim schließen von form1 eine Methode aufgerufen wird von form2
vllt so:
form1.Onclose += mein Event...
2 Antworten
Vom Beitragsersteller als hilfreich ausgezeichnet
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, programmieren, C Sharp
Die Klasse Form1 benötigt eine Referenz auf die Instanz von Form2, die ihre Methode ausführen soll oder andersherum. Danach ist die Vorgehensweise egal.
Beispiel:
// if inside Form1
FormClosed += form2.HandleForm1Close;
// if inside Form2
form1.FormClosed += HandleForm1Close;
Dafür muss Form2 einen Event Handler mit passender Signatur definieren:
public void HandleForm1Close(object sender, FormClosedEventArgs e)
{
// do something ...
}
Das kann man auch noch abkürzen:
// if inside Form1
FormClosed += (sender, e) => form2.DoSomething();
// if inside Form2
form1.FormClosed += (sender, e) => DoSomething();
DoSomething ist dabei eine Methode in Form2, die die Tätigkeit durchführt, die du durchführen lassen möchtest.
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren
private void Form1_FormClosed(Object sender, FormClosedEventArgs e) {
//Dein Event
System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "CloseReason", e.CloseReason );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "FormClosed Event" );
}
???
Woher ich das weiß:Studium / Ausbildung – Informatikstudent
![](https://images.gutefrage.net/media/user/Deathlag/1616194654988_nmmslarge__0_0_500_500_77a0f43d5804c908f40c8a1b0c260400.jpg?v=1616194655000)
Ich meinte: wenn form1 geschlossen wird. eine Methode aufgerufen wird. in form2