Jag har i mitt program massor med PictureBox. Dessa heter typ pb1, pb2, pb3 osv. Finns det något sätt att göra en array av alla dessa för att lättare kunna komma åt dem som pb[x]? "Jag har i mitt program massor med PictureBox. Dessa heter typ pb1, pb2, pb3 osv. Finns det något sätt att göra en array av alla dessa för att lättare kunna komma åt dem som pb[x]?" Ok hur tilldelar jag den en bild om det inte redan finns en pb då? Hej, jag verkar inte få riktigt rätt storlek på mina bilder. Ska PictureBoxen anpassa sig till bildens storlek? Jag kör denna koden. Vill att alla bilder ska vara på höjden 160 samt att de ska vandra åt höger med 80 pxl utrymme för varje bild. Men jag ser bara halva bilderna i y ledet. På bredden syns allt men inte på höjden. Vad kan felet vara? Du sätter ju bara positionen, inte storleken.PictureBox i en array hur???
Visa gärna med en enkel kodsnutt vad ni menar.
Tackar på förhand Göran PSv: PictureBox i en array hur???
Här kommer ett exempel som bygger på en ArrayList, givetvis kan du använda en vanlig array eller t ex en Hashtable om du vill ha "nycklar" för att hämta en viss picturebox. Anledningen till att jag visar exemplet med ArrayListen är att den är bättre anpassad för att hantera ett dynamiskt antal element. Vanliga arrayer kan inte expanderas i efterhand (du får skapa en ny och kopiera elementen). Det framgår inte om du vill ha ett fast antal eller inte av din fråga så jag visar det mest flexibla...
Koden nedan förutsätter att du redan har en picturebox (pictureBox1) som innehåller bilden som ska visas i de nya pictureboxarna.
<code>
public void CreatePictureBoxes(int count)
{
PictureBox mNewBox;
ArrayList mPictureBoxes=new ArrayList();
// Alternativ med en vanlig array
// PitcureBox[] mPictureBoxes=new PictureBox[count];
for (int i=0;i<count;i++)
{
mNewBox=new PictureBox();
mNewBox.Top=i*20;
mNewBox.Left=i*20;
mNewBox.Visible=true;
mNewBox.Image=pictureBox1.Image;
mForm.Controls.Add(mNewBox);
mPictureBoxes.Add(mNewBox);
// mPictureBoxes[i]=mNewBox;
}
}
</code>Sv: PictureBox i en array hur???
Vad är mForm. och vad gör den?
//GPSv: PictureBox i en array hur???
Det blev lite copy/paste-fel när jag fixade koden nedan, så mForm ska helt enkelt vara det formulär som det handlar om. Om koden nedan redan ligger i ditt formulär så skriver du bara this.Controls.Add() i stället. Se nedan...
För att ladda en bild kan du använda den statiska metoden FromFile() på Image-klassen enligt nedan. Lycka till...
<code>
public void CreatePictureBoxes(int count)
{
PictureBox mNewBox;
ArrayList mPictureBoxes=new ArrayList();
// Alternativ med en vanlig array
// PitcureBox[] mPictureBoxes=new PictureBox[count];
for (int i=0;i<count;i++)
{
mNewBox=new PictureBox();
mNewBox.Top=i*20;
mNewBox.Left=i*20;
mNewBox.Visible=true;
mNewBox.Image=Image.FromFile(@"c:\temp\test.gif");
this.Controls.Add(mNewBox);
mPictureBoxes.Add(mNewBox);
// mPictureBoxes[i]=mNewBox;
}
}
</code>Sv: PictureBox i en array hur???
mNewBox.Top=160;
mNewBox.Left=190 + (i*80); Sv: PictureBox i en array hur???
Använd width och height.