TableLayoutPanel mit vielen Bildern füllen
-
Hallo,
ein TableLayoutPanel soll genau eine Zeile und viele Spalten enthalten. Die Felder sollen mit Bildern (also PictureBox) gefüllt werden. AutoScroll ist auf true gesetzt. Wie man einzelne Felder mit Bildern füllt habe ich schon rausgefunden:
tableLayoutPanel1.Controls.Add(picturebox1,spalte,zeile);Aber da es viele Bilder sind, möchte ich sie nicht alle einzeln eintragen.
1. Frage: Wie definiert man überhaupt viele Bilder bzw. viele PictureBox? Ich habe versucht ein Array von PictureBox anzulegen, aber das geht nicht:
public PictureBox[] p = new PictureBox()[20];2. Frage: Es soll irgendwie möglich sein, zur Laufzeit an einer beliebigen Stelle nachträglich ein Bild einzufügen, d.h. die weiter rechts stehenden Bilder müssen alle um eine Position weiter nach rechts rücken. Wie kann man das realisieren?
Gruß
Michael
-
Hallo
Zum einen, wenn du ein Array erzeugen willst, dann ist die Schreibweise folgende:
PictureBox[] p = new PictureBox[20]; for(int i = 0; i < p.Count; ++i) p[i] = new PictureBox();
Das Wichtigste dabei ist, dass das erzeugen des Arrays nicht die Objekt erzeugt, die muss du noch mal explizit erzeugen.
Wenn du diese dann in die Auflistung aufnehmen willst, dann muss du die AddRange()-Funktion benutzen, siehe hier.
Zu deinem Punkt 2, gibt es eine Überladung der Add-Funktion. Diese hat als 2ten und 3ten Parameter die Spalte/Zeile an der es eingefügt werden soll, siehe hier.
Gruß Marc-o
-
Danke erstmal, Teil 1 mit dem Array funktioniert jetzt. An Teil 2 arbeite ich noch.
Gruß
Michael