Вызов изображения с петлей - PullRequest
0 голосов
/ 26 января 2012

Эй, мне нужна помощь с домашним заданием в C # Windows Form Application.Предположим, у меня был массив из 10 коробок с картинками, и у них были имена «pic0», «pic1» и так далее.Мне нужно вызвать его в коде с циклом for, и это моя проблема.Извините, если я плохо это объяснил, но я постараюсь показать вам код, который я пробовал.

for(int i=0;i<Array.Length;i++)
{
  ("pic" + i).Visible = true;
}

То, что я пытаюсь сделать в цикле, это циклически проходить по массиву, делая все видимым с помощью цикла.Проблема в том, что я не думаю, что вызов ("рис" + я). Visible работает.Есть предложения?

Ответы [ 3 ]

1 голос
/ 26 января 2012

Используйте массив вместо имени - каждый элемент в массиве будет Picturebox, для которого вы можете установить свойство Visible.

for(int i=0;i<someArray.Length;i++)
{
  someArray[i].Visible = true;
}
0 голосов
/ 26 января 2012

Выражение ("pic" + i), вероятно, даже не компилируется, и если это так, оно возвращает объект типа string.

Объекты типа string не имеют свойства Visible.

Вам нужен способ найти нужный элемент управления Windows Forms. На самом деле, у вас уже есть все эти объекты в массиве.

foreach (Control control in array) {
    control.Visible = true;
}
0 голосов
/ 26 января 2012

Что ж, если у вас есть массив графических блоков, вы можете перебирать элементы массива (который, предположительно, является массивом элементов PictureBox, а не их имен) и устанавливать свойство Visible каждого элемента.

// assuming yourArray is the array holding your PictureBox elements
for(int picBoxIndex = 0; picBoxIndex < yourArray.Length; picBoxIndex++)
{
    yourArray[picBoxIndex].Visible = true;
}

Другой способ перебора массива элементов PictureBox - использовать оператор foreach, подобный следующему:

// again, yourArray is an array of PictureBox elements:  PictureBox[] yourArray
foreach(PictureBox element in yourArray)
{
    element.Visible = true;
}

Однако, если у вас есть только имена в массиве (из строк), вам нужно будет сделать что-то по-другому.

...