C# Funktion ausführen wenn andere Form geschlossen wird

Registriert
Feb. 2012
Beiträge
7
Hallo,
Ich habe in der Form7 eine funktion, die eine anzeige in Form7 aktualisiert..

Über einen Button in Form7 öffnet sich die Form8, wo man etwas löschen kann..
Nun soll wenn man Form8 schliesst die funktion in form7 ausgeführt werden, da sollte man etwas gelöscht haben die anzeige aktualisiert wird..

Lg
 
Form8 OnClosed Event, wär mein erster Ansatz.
 
Kannste mir da en beispiel schreiben?

hab schon gegoogelt aber keine dort der gezeigten lösungen hat geklappt..
 
Du kannst auch Form8 in Form7 als Dialog öffnen.
Wobei mir deine Namensgebung Sorgen macht.
 
Code:
Form8.ShowDialog();
Form8.irgendwas(); // <-- wird erst ausgeführt, nachdem die Form8 geschlossen wurde
 
Ok..
Würde es auch so gehen das man immernoch zwischen den Fenstern wechseln kann?
 
Nein, Form7 wäre nicht nutzbar, solange Form8 als Dialog angezeigt wird.
 
Ich kenn schon den unterschied zwischen ShowDialog(); und Show();

Nur ich meine gibt es auch eine Funktion mit der das auch nur mit Show(); geht?

lg
 
Was funtioniert den mit dem OnClose-Event nicht? Bei mir geht's:
Code:
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            Form2 f2 = new Form2();
            f2.FormClosed += new FormClosedEventHandler(f2_FormClosed);
            f2.Show();
        }

        void f2_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.label1.Text = "Form2 wurde geschlossen";
        }
    }
 
du übergibst die Form7 der Form8 als Parent, und im FormClose Event von FOrm8 rufst du eine public methode von Form7 auf welche dein label bearbeitet.

also:

Code:
public void OeffneForm8()
{
     Form8 form = new Form8();
     form.Parent = this; //hoffe "this" ist dir geläufig... evtl auch this.Form... 
     form.Show();
}

public void Form2Closed()
{
     this.label1.Text = "Form2 wurde geschlossen";
}

//bei Form8 das formClosedEvent benutzen um die Methode aus Form7 auf zu rufen
void f2_FormClosed(object sender, FormClosedEventArgs e)
{
      this.Parent.Form2Closed();
}
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben