Hallo Com.
Ich bin neu im Thema Programmieren und habe da ein problem.
Ich will für ein Pc-Spiel was ich derzeitig spiele ein Programm schreiben - es soll mir helfen eine art Labyrint zu bauen nur weis ich nicht wie ich einem ddurch Array erstellten Panel eine funktion zuweisen kann bzw. allen Panels die selbe funktion.
Die Funktion soll bewirken , dass wenn ich auf ein Panel klicke soll sich die Farbe des angeklickten Panels in schwarz/weiß/rot ändern
Hier den bisjetzt geschriebenen Code:
(Vor ab , die Methode AllPanelClick ist nur teilweise von mir - den groben zusammen bau habe ich von einem Forum)
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: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46:
| private void button1_Click(object sender, EventArgs e) { List<Panel> panel = new List<Panel>();
for (int ebene1 = 0; ebene1 < 46; ebene1++) { panel.Add(new Panel()); panel[ebene1].Location = new Point(10 + (ebene1 * 21), 200); panel[ebene1].Size = new System.Drawing.Size(20, 20); panel[ebene1].Name = "Panel" + ebene1; panel[ebene1].BackColor = System.Drawing.Color.Black; panel[ebene1].Click += AllpanelClick; this.Controls.Add(panel[ebene1]); panel[ebene1].TabIndex = ebene1; }
protected void AllpanelClick (Object sender, EventArgs e) { Panel panelClicked = (Panel)sender;
if (this.BackColor == Color.Black) { this.BackColor = Color.White; } else if (this.BackColor == Color.White) { this.BackColor = Color.Red; } else if (this.BackColor == Color.Red) { this.BackColor = Color.Black; }
} |
Die Panels lassen sich erstellen , jedoch wenn ich dann auf ein Panel klicke passiert nichts.
Moderiert von
Christian S.: Quote- durch C#-Tags ersetzt