Autor Beitrag
DonKannallie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Mo 11.08.14 17:30 
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)

ausblenden volle Höhe 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>();



    //
    // 1
    //
    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(2020);
        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 user profile iconChristian S.: Quote- durch C#-Tags ersetzt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mo 11.08.14 17: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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
DonKannallie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Mo 11.08.14 17:57 
WOW!

vielen dank hat geklappt !