Guten Morgen.
Ich habe ein mehrdimensionales Array von Buttons erstellt und möchte die Eigenschaften einzelner Buttons per _Click Event auf den jeweiligen Button verändern. Die Buttons sind da, auch den EventHandler für das click event habe ich, aber ich bekomme es nicht hin, dass sich der geklickte Button verändert.
Hier der 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: 26:
| public void btn_erstellen_Click(object sender, EventArgs e) { int Spalten = Convert.ToInt32(numUpDown_Katzahl.Value); int Zeilen = Convert.ToInt32(numUpDown_qpc.Value); int x = 13;
for (int n = 0; n < Spalten; n++) { for (int i = 0; i < Zeilen; i++) { Button btn_neu = new Button(); btn_neu.Location = new System.Drawing.Point(x, y); btn_neu.Text = "Frage " + (i + 1) + " ??"; btn_neu.Name = "Frage" + n + i; btn_neu.TabIndex = 0; btn_neu.Width = btn_neu_kat[1, 1].Width; this.Controls.Add(btn_neu); btn_Frage[i,n] = btn_neu; this.btn_Frage[i,n].Click += new System.EventHandler(this.btn_Frage_Click); y = y + 40; } y = 180; x = x + 120; } } |
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| private void btn_Frage_Click(object sender, EventArgs e) { btn_Frage[1,2].BackColor = Color.Red; Button btn = sender as Button; btn_Frage[1, 2].Text = "lol"; FrageAntwort fa = new FrageAntwort(); fa.ShowDialog(this); } |
in Designer.cs
C#-Quelltext
1:
| System.Windows.Forms.Button[,] btn_Frage = new System.Windows.Forms.Button[30,30]; |
Damit lassen sich die Eigenschaften (hier nur Beispiele) für den konkreten Button btn_Frage[1,2] ändern. Es soll aber den Button treffen, der geklickt wurde, btn_Frage[i,n], nur wie geht das? Ich denke ich muss ermitteln, welche Werte i und n gerade haben. Ich habe schon was gefunden, dass man das mit dem "sender as Button" machen kann, aber so recht will das nicht funktionieren. Hat jmd. eine Idee?
Besten Dank und gute Nacht.
