Laden...

Picture Box mit Variabeln angeben

Erstellt von Moschn vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.002 Views
M
Moschn Themenstarter:in
16 Beiträge seit 2009
vor 15 Jahren
Picture Box mit Variabeln angeben

Hi all

Ich komme kurz und bündig zu meinem Problem.

Ich habe 25 Pictureboxen diese will ich in einer "for" schlaufe verändern!

for (int z = 1; z <= 26; z++)
                    {
                        if (n == z)
                        {
                            pictureBox1.Visible = true;
                            pictureBox1.Image = System.Drawing.Bitmap.FromFile("G:\\c#\\Dani - Jonas\\Einheiten.bmp");
                        }
                    }

Nun wollte ich aber um nicht für alle 25 Boxen eine eigene if schlaufe zu öffnen dies tun:

for (int z = 1; z <= 26; z++)
                    {
                        if (n == z)
                        {
                            pictureBox(z).Visible = true;
                            pictureBox(z).Image = System.Drawing.Bitmap.FromFile("G:\\c#\\Dani - Jonas\\Einheiten.bmp");
                        }
                    }

ich will statt eine eins einfach z einfügen! Da ich nicht weiss wie das geht und schon vieles ausprobiert habe frage ich nun euch.
Hat jemand eine Idee?

thx im voraus!

564 Beiträge seit 2005
vor 15 Jahren

Pack die PBs in ein Array.

M
Moschn Themenstarter:in
16 Beiträge seit 2009
vor 15 Jahren

erstmal danke für die schnelle antwort!

Tut mir leid, dass ich jetzt nachfragen muss 😦 bin n neewbi xD!

aber:
wenn ichs so mache gehts nicht:

int[] picture = {pictureBox1, PicturBox2, Picturebox3, (((Hier würde es jetzt weitergehen...))), PictureBox25};

oder wie meinst du das?

95 Beiträge seit 2008
vor 15 Jahren

Du musst natürlich nicht ein Integer Array verwenden...

Du brauchst ein PictureBox Array:

PictureBox[]

Gruss Thomas

Gespräch zweier Informatiker:
"Wie ist denn das Wetter bei euch?"
"Caps Lock."
"Hä?"
"Na ja, Shift ohne Ende!"

J
3.331 Beiträge seit 2006
vor 15 Jahren

Siehe vor allem [FAQ] Variablennamen zur Laufzeit zusammensetzen

Beachte auch if-Schleife

Statt eines Arrays würde ich List<PictureBox> benutzen:

List<PictureBox> picboxes = new List<PictureBox>();
picboxes.Add(myPictureBox1);
picboxes.Add(myPictureBox2);
// usw.
foreach(PictureBox box in picboxes) { /* tuwas */ }

Jürgen

95 Beiträge seit 2008
vor 15 Jahren

Aber wenn die Anzahl PictureBox bekannt ist, wäre ein PictureBox Array in der Handhabung fast einfacher... Oder gibt es noch einen anderen Grund, wieso du List<PictureBox> verwenden würdest?

Gespräch zweier Informatiker:
"Wie ist denn das Wetter bei euch?"
"Caps Lock."
"Hä?"
"Na ja, Shift ohne Ende!"

J
3.331 Beiträge seit 2006
vor 15 Jahren

Aus praktischen Gründen. Heute sind es 25, morgen vielleicht 28 usw. Eine Deklaration mit 25 einzeln aufgeführten Elementen finde ich auch nicht schön. Und wenn er doch noch vernünftige Namen einführen will, muss er nochmals neu nachdenken.

Jürgen

95 Beiträge seit 2008
vor 15 Jahren

Ja, da hast du auch wieder recht...

Gruss Thomas

Gespräch zweier Informatiker:
"Wie ist denn das Wetter bei euch?"
"Caps Lock."
"Hä?"
"Na ja, Shift ohne Ende!"

M
Moschn Themenstarter:in
16 Beiträge seit 2009
vor 15 Jahren

es hat geholfen!
Danke für die Tipps^^