Entwickler-Ecke
WinForms - Panel - Dynamische Crontrol
DonKannallie - Mo 11.08.14 18:30
Titel: Panel - Dynamische Crontrol
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)
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: 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
Christian S. - Mo 11.08.14 18:54
Hallo,
wenn ich das richtig sehe, musst Du in der Methode AllpanelClick jeweils nicht this ansprechen, sondern panelClicked. this ist dort weiterhin die Form und nicht das Panel, denn AllpanelClick ist eine Methode der Form-Klasse und nicht der Panel-Klasse.
Grüße
Christian
DonKannallie - Mo 11.08.14 18:57
WOW!
vielen dank hat geklappt !
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!