Помещение меток в массив с помощью цикла for в Visual Studio C #

1

Я хочу поместить метки в массив при загрузке формы, но вместо того, чтобы кодировать их один за другим, я хочу использовать цикл for, но я не знаю, как это работает на С#.

Мой код:

Dates[0] = this.labelrect0; 
Dates[1] = this.labelrect1;
Dates[2] = this.labelrect2;
Dates[3] = this.labelrect3;

Что я хочу сделать:

for(int n = 0; int > array.Count; c++)
{
 Dates[n] = this.labelrect+n;  //how do i concatenate n to labelrect?
}
Теги:
for-loop
winforms

3 ответа

0
Лучший ответ

если Dates является Label[] вы можете попробовать следующее:

for(int n = 0; n < array.Count; n++)
{
 Dates[n] =(Label) Controls.Find("labelrect"+n, true)[0]; 
}
  • 0
    Могу я спросить, что делает [0] в конце строки?
  • 0
    @Sai: метод Control.Find() возвращает массив элементов управления, совпадающих с заданным именем, поэтому мы должны рассмотреть первый элемент из массива.
Показать ещё 2 комментария
0

Обычно я помещаю указатель метки в свойство тега, после чего я затем перебираю через Control Collection с помощью тега, чтобы назначить элемент управления правильному индексу. Что-то вроде этого.

for (int i = 0; i < Controls.Count; i++)
{
    if(Controls[i] is Label)
        Dates[int.Parse(Controls[i].Tag.ToString())] = (Label)Controls[i];
}
0

Вы можете использовать свойство Controls. Если у вас есть элемент управления Container который содержит эти метки, вы можете получить коллекцию элементов управления, содержащихся в элементе управления, с помощью <ContainerID>.Controls.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню