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-ID: 139122

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

Ausgedruckt am: 23.11.2024 um 09:11 Uhr

MonoTone
MonoTone 01.04.2010 um 18:32:23 Uhr
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.