C# Funktion ausführen wenn andere Form geschlossen wird

Dabei seit
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
 

das Neutrum

Lt. Junior Grade
Dabei seit
Nov. 2006
Beiträge
460
Form8 OnClosed Event, wär mein erster Ansatz.
 

Zerstoerer5000

Newbie
Ersteller dieses Themas
Dabei seit
Feb. 2012
Beiträge
7
Kannste mir da en beispiel schreiben?

hab schon gegoogelt aber keine dort der gezeigten lösungen hat geklappt..
 

derlolomat

Lieutenant
Dabei seit
Feb. 2011
Beiträge
796
Du kannst auch Form8 in Form7 als Dialog öffnen.
Wobei mir deine Namensgebung Sorgen macht.
 

Yuuri

Fleet Admiral
Dabei seit
Okt. 2010
Beiträge
12.631
Code:
Form8.ShowDialog();
Form8.irgendwas(); // <-- wird erst ausgeführt, nachdem die Form8 geschlossen wurde
 

Zerstoerer5000

Newbie
Ersteller dieses Themas
Dabei seit
Feb. 2012
Beiträge
7
Ok..
Würde es auch so gehen das man immernoch zwischen den Fenstern wechseln kann?
 

Darlis

Commodore
Dabei seit
Jan. 2011
Beiträge
4.229
Nein, Form7 wäre nicht nutzbar, solange Form8 als Dialog angezeigt wird.
 

Zerstoerer5000

Newbie
Ersteller dieses Themas
Dabei seit
Feb. 2012
Beiträge
7
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
 

Darlis

Commodore
Dabei seit
Jan. 2011
Beiträge
4.229
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";
        }
    }
 
M

Marguth

Gast
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 von einem Moderator bearbeitet:
Top