Hallo.
Vorerst möchte ich sagen, dass ich noch ein ziemlicher Anfänger bin, also wenn ihr nicht genau versteht was ich versuche zu erklären, fragt einfach nochmal nach
Ich möchte mit VB 2008 Schiffe versenken programmieren.(unten ist ein Bild vom "Grundriss")
Ich habe jetzt noch nicht sehr viel gemacht, denn ich bin auf ein Problem gestoßen.
Ich habe als erstes ziemlich mühsam die einzelnen Felder(Panels)nach den jeweiligen Feld benannt (z.B. erstes Feld links oben heißt Panel1a, rechts daneben Panel1b, usw...) Das war schon ziemlich aufwendig.
Ich habe daraufhin eine Testprozedur gemacht ob auch alles passt:
Diese soll alle Panels weiß färben. Klappt auch soweit.
Wegen der übersichtlichkeit habe ich den Rest hier weggelassen. Hier bin ich eigentliches Problem gestoßen:
Wie kann man diese Wiederholungen vermeiden, also immer
Panel1b.BackColor = Color.White
Panel1c.BackColor = Color.White
Panel1d.BackColor = Color.White
zuschreiben geht zwar mit Copy&Paste aber es geht doch auch bestimmt anders.
z.b. panel1a,1b,3b,... .Backcolor = Color.White - oder so ähnlich, halt in möglichst wenig Zeilen.
Das ist erstmal nicht so wichtig.
Ich würde gern wissen wie man das bei Prozeduren macht.
Ich will es so programmieren, dass wenn man auf ein Feld(Panel) klickt, der Feldname in die Variable "feld" geschrieben wird, sodass man jederzeit aufrufen kann, auf welches Feld man geklickt hat. Wenn ich diesen Quellcode(wieder der Einfachkeit wegen gekürzt) so weiterschreiben wollte müsste ich da ja 300(!) Zeilen schreiben und das würde Stunden dauern.
Ich suche also nach einer Möglichkeit ohne diese Wiederholugen
Private Sub Panel1a_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel1a.Click
feld = "A1"
End Sub
Private Sub Panel1b_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel1b.Click
feld = "B1"
End Sub
Kann mir da jmd weiterhelfen?
Hoffe das das jmd verstanden hat, um was es geht
Danke schonmal.
Vorerst möchte ich sagen, dass ich noch ein ziemlicher Anfänger bin, also wenn ihr nicht genau versteht was ich versuche zu erklären, fragt einfach nochmal nach
Ich möchte mit VB 2008 Schiffe versenken programmieren.(unten ist ein Bild vom "Grundriss")
Ich habe jetzt noch nicht sehr viel gemacht, denn ich bin auf ein Problem gestoßen.
Ich habe als erstes ziemlich mühsam die einzelnen Felder(Panels)nach den jeweiligen Feld benannt (z.B. erstes Feld links oben heißt Panel1a, rechts daneben Panel1b, usw...) Das war schon ziemlich aufwendig.
Ich habe daraufhin eine Testprozedur gemacht ob auch alles passt:
Quellcode
- Panel1a.BackColor = Color.White 'Reihe 1
- Panel1b.BackColor = Color.White
- Panel1c.BackColor = Color.White
- Panel1d.BackColor = Color.White
- Panel1e.BackColor = Color.White
- Panel1f.BackColor = Color.White
- Panel1g.BackColor = Color.White
- Panel1h.BackColor = Color.White
- Panel1i.BackColor = Color.White
- Panel1j.BackColor = Color.White
- Panel2a.BackColor = Color.White 'Reihe 2
- Panel2b.BackColor = Color.White
- Panel2c.BackColor = Color.White
- Panel2d.BackColor = Color.White
- Panel2e.BackColor = Color.White
- Panel2f.BackColor = Color.White
- Panel2g.BackColor = Color.White
- Panel2h.BackColor = Color.White
- Panel2i.BackColor = Color.White
- Panel2j.BackColor = Color.White
- ...
Diese soll alle Panels weiß färben. Klappt auch soweit.
Wegen der übersichtlichkeit habe ich den Rest hier weggelassen. Hier bin ich eigentliches Problem gestoßen:
Wie kann man diese Wiederholungen vermeiden, also immer
Panel1b.BackColor = Color.White
Panel1c.BackColor = Color.White
Panel1d.BackColor = Color.White
zuschreiben geht zwar mit Copy&Paste aber es geht doch auch bestimmt anders.
z.b. panel1a,1b,3b,... .Backcolor = Color.White - oder so ähnlich, halt in möglichst wenig Zeilen.
Das ist erstmal nicht so wichtig.
Ich würde gern wissen wie man das bei Prozeduren macht.
Ich will es so programmieren, dass wenn man auf ein Feld(Panel) klickt, der Feldname in die Variable "feld" geschrieben wird, sodass man jederzeit aufrufen kann, auf welches Feld man geklickt hat. Wenn ich diesen Quellcode(wieder der Einfachkeit wegen gekürzt) so weiterschreiben wollte müsste ich da ja 300(!) Zeilen schreiben und das würde Stunden dauern.
Ich suche also nach einer Möglichkeit ohne diese Wiederholugen
Private Sub Panel1a_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel1a.Click
feld = "A1"
End Sub
Private Sub Panel1b_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel1b.Click
feld = "B1"
End Sub
Kann mir da jmd weiterhelfen?
Hoffe das das jmd verstanden hat, um was es geht
Danke schonmal.