Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ к элементу по имени, элемент создан динамически 
:(
    Опции темы
Keanor
Дата 19.6.2011, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 2.6.2009

Репутация: нет
Всего: нет



В цикле было созданно несколько элементов (порядка 50)

Код

for (int i=0;i<30;i++) {
    Label label = new Label();
    label.Name = "label" + i;
}


Можно ли получить доступ к элементу зная его св-во Name не перебирая все контролы подряд?
PM MAIL   Вверх
dextermd
Дата 19.6.2011, 19:50 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 21.6.2008

Репутация: нет
Всего: нет



Лучше сделать массив из Label-ов и обращаться к ним по индексу.

Код

Label[] myLabels = new Label[30];

//инициализируем массив
for (int i = 0; i < myLabels.Length; i++)
{
    myLabels[i] = new Label();
}

//обращаемся к десятому элементу
myLabels[9].Name = "Hello World";


PM MAIL   Вверх
VirusUZ
  Дата 28.6.2011, 12:07 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 9.4.2010
Где: Узбекистан, Навои й обл.

Репутация: -1
Всего: -2



Код

for(int i=0;i<this.Controls.Count;i++)
string name= this.Colntrols[i}.Name;

--------------------
Virus
PM MAIL   Вверх
Экскалупатор
Дата 28.6.2011, 15:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 2
Всего: 24



VirusUZ, это ты о чем написал?

Цитата(Keanor @  19.6.2011,  13:53 Найти цитируемый пост)
Можно ли получить доступ к элементу зная его св-во Name

да можно. коллекция Controls принимает либо индекс либо имя контрола:
Код

this.Controls["label2"].Text = "new Text";


только лучше проверять наличие этого контрола иначе будет ошибка, т.е. хотя бы так:
Код

if (this.Controls["label2"]!=null)
            {
                this.Controls["label2"].Text = "new Text";
            }

PM MAIL ICQ   Вверх
MrGOD
Дата 5.7.2011, 20:59 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 30.6.2011
Где: Беларусь

Репутация: нет
Всего: нет



Лучше использовать Dictionary. Или еще как вариант PLINQ работает очень быстро, в несколько потоков.
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0647 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.