2012-01-25 1 views
0

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

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

То, что я пытаюсь сделать в цикле, - это цикл через массив, делая все видимым с помощью цикла. Проблема в том, что я не думаю, что называть («pic» + i) .Visible работает. Какие-либо предложения?

+0

Я лицо на лице прямо сейчас из-за того, насколько прост этот вопрос был. Всем спасибо. – user1033065

+0

, если вы нашли правильный ответ ниже, отметьте его как таковой .. он помогает другим пользователям, когда у них есть аналогичная проблема, так как ваш идентифицирует правильный ответ –

ответ

1

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

for(int i=0;i<someArray.Length;i++) 
{ 
    someArray[i].Visible = true; 
} 
0

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

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

Другой способ перебрать массив элементов PictureBox должен использовать Еогеасп подобное заявление:

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

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

0

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

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

Вам нужен способ поиска Windows Forms Control, который вы хотите. Фактически, у вас уже есть все те объекты в массиве.

foreach (Control control in array) { 
    control.Visible = true; 
} 
Смежные вопросы