cubic83
Goto Top

CSharp - Formular mit zur Laufzeit erzeugtem Eventhandler schliessen

Hallo an alle,

ich beschäftige mich wieder mal ein bischen mit C#. Ich erstelle zur Laufzeit einen Button und ein Formular. Der Button soll das Formular schliessen. Eigentlich einfach. Das erstellen des dynamischen Eventhandlers hab ich mir auch schon ergoogelt, aber ich weiss jetzt nicht wie ich von diesem Code das Formular schliessen kann.

private void OpenForm_Click(object sender, EventArgs e)
        {
            Form myform = new Form();
            myform.Width = 200;
            myform.Height = 120;
            myform.FormBorderStyle = FormBorderStyle.FixedSingle;
            myform.MaximizeBox = false;
            myform.MinimizeBox = false;

            //  .... 

            Button myBtn2 = new Button();
            myBtn2.Text = "Close";  
            myBtn2.Left = 90;
            myBtn2.Top = 55;
            myBtn2.Click += new EventHandler(this.myBtn2_Click);

            myform.Controls.Add(myBtn2);
            myform.ShowDialog();
}

void myBtn2_Click(object sender, EventArgs e)
{
               // Hier soll myform geschlossen werden
}

Kann / Muss ich ich das Formular als Parameter für den Eventhandler übergeben oder kriege ich das irgendwie aus dem "sender" heraus? Ich könnte myform natürlich global definieren, aber ich denke das ist nicht die sauberste Art und Weise.

mfG

Content-Key: 139122

Url: https://administrator.de/contentid/139122

Printed on: April 18, 2024 at 23:04 o'clock

Member: MonoTone
MonoTone Apr 01, 2010 at 16:32:23 (UTC)
Goto Top
HI

So in etwa:


void myBtn2_Click(object sender, EventArgs e) 
{ 
               // Hier soll myform geschlossen werden 
Form f = (Form)((Button)sender).Parent;
f.Close();
} 

Allerdings würde ich die Form global deklarieren.