Permalänk

C# picturebox

Har fem stycken picturebox, döpta picturebox1, picturebox2 och så vidare. Vill kunna lagra dessa klasser på något sätt. Detta är koden vi vill skriva om till något mindre.

if (hold[1] == false)
{
pictureBox1.ImageLocation = img[dice[1]];
}
if (hold[2] == false)
{
pictureBox2.ImageLocation = img[dice[2]];
}
if (hold[3] == false)
{
pictureBox3.ImageLocation = img[dice[3]];
}
if (hold[4] == false)
{
pictureBox4.ImageLocation = img[dice[4]];
}
if (hold[5] == false)
{
pictureBox5.ImageLocation = img[dice[5]];
}

Tack på förhand!

Permalänk
Medlem

Ta en titt på loopar, sen lägg dina pictureBox i en array eller dylikt.
typ

for(int i = 1; i < 6; ++i) { if(hold[i] == false) { pictureBoxs[i] = img[dice[i]]; } }

Vad gör ni på pos 0 btw?

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk

Har testat precis som du skriver. Och det får jag tyvärr inte att funka

Permalänk
Hedersmedlem

Du får såklart göra en array som innehåller pictureboxar också

Permalänk
Medlem

Inte precis det mest ultimata.... men borde funka

for(int i = 1; i < 6; ++i) { if(hold[i] == false) { ((PictureBox)this.Controls.Find("pictureBox" + i, true).First()).ImageLocation = img[dice[i]]; } }

Skulle personligen rekommendera som föregående talare, skapa upp dom dynamiskt, lägg alla picture boxar i en Array/Lista som du sedan loopar igenom.

Visa signatur

Speldator: i7-8700k, 32GB DDR4, RTX2080
Server 1: SB 2500k, MZI -P67GD55, 32GB DDR3, Corsair MX 240GB SSD
Surface Pro 2017, Konsoler: Typ alla, Oculus Rift

Permalänk

Tack MugiMugi, det funkade perfekt för det vi behövde det till! Tack så mycket!