c# wenn form geschlossen wird event?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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.

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" );
}

???

https://docs.microsoft.com/de-de/dotnet/api/system.windows.forms.form.formclosed?view=netframework-4.8

Woher ich das weiß:Studium / Ausbildung – Informatikstudent
Deathlag 
Fragesteller
 25.03.2020, 17:08

Ich meinte: wenn form1 geschlossen wird. eine Methode aufgerufen wird. in form2

0