Forum: PC-Programmierung Dynamische Buttons erzeugen


von Leon E. (adiagi)


Lesenswert?

hi Leute,

hab ne frage bezüglich dynamischen Buttons.
Mit hilfe nachfolgendem Code werden jenachdem Buttons auf der Oberfläche 
erzeugt.
1
foreach (DeviceMapping dm in deviceType.DeviceMappings)
2
            {
3
                Button btn = new Button();                
4
               // btn.Tag = dm;   // TODO: use connection instead of mapping
5
                btn.Tag = dm.ConnectionString;
6
                btn.Text = dm.DeviceName;
7
                flowLayoutPanel1.Controls.Add(btn);
8
            }

Meine Frage nun, wenn die Buttons dann erstellt sind, will ich ein 
Klickereigniss haben, wie mach ich das aber wenn ich anfangs noch keine 
Buttons habe, die erst zur Laufzeit erzeugt werden. Wenn der Button dann 
da ist soll, wenn drauf geklickt wird ein ereignis ausgelöst werden.

Vielen Dank im Voraus

Gruß

Agit

von Peter II (Gast)


Lesenswert?

schau dir doch einfach mal den code an den der designer erzeugt wenn du 
dort buttons anlegst. Er macht es auch dynamische, das ganze findet im 
contructor der klasse statt.

von Leon E. (adiagi)


Lesenswert?

Hi Peter,

habs hinbekommen.
und zwar wie folgt.
Man muss einfach nur ein Event anmelden und es dann behandlen., also so:
1
foreach (DeviceMapping dm in deviceType.DeviceMappings)
2
            {
3
                Button btn = new Button();                
4
               // btn.Tag = dm;   // TODO: use connection instead of mapping
5
                btn.Tag = dm.ConnectionString;
6
                btn.Text = dm.DeviceName;
7
                flowLayoutPanel1.Controls.Add(btn);
8
                btn.Click += new EventHandler(this.btn_Click);
9
            }
10
           
11
        }
12
13
        void btn_Click(object sender, EventArgs e)
14
        {
15
            MessageBox.Show("SS");
16
        }

gruß agit

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.