Habe das hier (
msdn.microsoft.com/d...a984275(VS.71).aspx) bei msdn gefunde, da word es auch ausfürlich erklärt, ka wieso ich das nicht schon früher gefunden habe, da ich ja gesucht hab.
Na egal habe verscuht mein Problem mit Hilfe dieses Beispiles umzuschreiben, daher der folgende Code:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { ComboBox obox = new ComboBox(); if (comboBox1.SelectedItem.Equals("1")) { obox.Location = new Point(42, 87); Controls.Add(obox); obox.Items.Add("a"); obox.Items.Add("b"); obox.Items.Add("c"); obox.SelectedIndexChanged += new EventHandler(obox_SelectedIndexChanged); } if (comboBox1.SelectedItem.Equals("2")) {
if (Controls.Contains(obox)) { obox.SelectedIndexChanged -= new System.EventHandler(obox_SelectedIndexChanged); Controls.Remove(obox); obox.Dispose(); } } } |
Leider funktioniert es immer noch nicht.
Und mich würde auch interessieren, wieso man diese Zeile scheiben muss:
C#-Quelltext
1:
| obox.SelectedIndexChanged -= new System.EventHandler(obox_SelectedIndexChanged); |
Im Beispeil auf der MSDN Seite ist das mit ähnlich für ein Button geschrieben(OnClick).
Ich verstehe ja wieso man das umgekehrte schreiben muss, das was bei mir im ersten if-Block ist, aber wieso das gleiche nochmal mit -= ..?
Es soll ja nichts passieren, will es ja nur löschen..!
Die Zeile
C#-Quelltext
habe ich verstanden, wird ja da auch gut erklärt..!