Pobieranie elementów z formy w pętli for

0

Witam. Mam na swojej formie Kilkanaście elementów typu PictureBox o nazwach: picture1, picture2, ..., picture20. Teraz mam funkcję, która ma mi wyzerować obrazek w każdym z nich. Nie chciałbym pisać kilkanaście razy tego samego kodu, więc postanowiłem zrobić to w pętli for. Napisałęm sobie coś takiego:

for(int i = 1; i <= 20; ++i)
{
	this.Controls["picture" + i.ToString()].Image = Properties.Resources.tlo;
}

Rzecz w tym, że dla komponentu

this.Controls["picture" + i.ToString()]

VS nie znajduje mi właściwości Image

. Czy jest w ogóle możliwe użycie czegoś w tym stylu, czy w ogóle nie tędy droga? Proszę o pomoc.
1

Zrób sobie w klasie tablicę albo listę:

PictureBox[] pictures;

wypełnij gdzieś w konstruktorze formy:

pictures = new PictureBox[20];
pictures[0] = picture0;
pictures[1] = picture1;
pictures[2] = picture2;
pictures[3] = picture3;
...
pictures[19] = picture19;

Możesz też wypełnić w pętli, a potem

for(int i = 0; i < 20; ++i)
    pictures[i].Image = cośtam;

u ciebie problemem jest to, że Controls[] zwraca Control a nie PictureBox. Trzeba rzutować.

0

Dzięki za pomoc, wszystko już ładnie działa

1 użytkowników online, w tym zalogowanych: 0, gości: 1