Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.189.177] |
|
Сообщ.
#1
,
|
|
|
Добрый день.
Необходимо добавить новый экземпляр контрола рекурсивно внутрь самого себя. Как это сделать? |
Сообщ.
#3
,
|
|
|
Спасибо!
|
Сообщ.
#4
,
|
|
|
Пожалуйста.
|
Сообщ.
#5
,
|
|
|
А как добавлять контролы в массив контролов? Такое добавление приводит к совпадению имен:
Controls.Add("Project1.UserControl1", "UserСontrol11") Т.е нужно создать контрол с таким же именем, но другим индексом. |
Сообщ.
#6
,
|
|
|
Цитата naigs @ добавлять контролы в массив контролов Во-первых, Вы добавляете не в массив, а в коллекцию Controls. Во-вторых, Вы излишне вольно обходитесь с параметрами. Цитата naigs @ нужно создать контрол с таким же именем, но другим индексом В коллекции дублирование имён (вернее, ключей) невозможно. |
Сообщ.
#7
,
|
|
|
Цитата Akina @ Цитата naigs @ добавлять контролы в массив контролов Во-первых, Вы добавляете не в массив, а в коллекцию Controls. Во-вторых, Вы излишне вольно обходитесь с параметрами. Цитата naigs @ нужно создать контрол с таким же именем, но другим индексом В коллекции дублирование имён (вернее, ключей) невозможно. Я понимаю, что я добавляю в коллекцию. Но в коллекции может быть массив контролов, отличаются эти контролы тем, что у них одинаковые имена и определены индексы, именно индексами они и отличаются. |
Сообщ.
#8
,
|
|
|
Цитата naigs @ в коллекции может быть массив контролов, отличаются эти контролы тем, что у них одинаковые имена и определены индексы, именно индексами они и отличаются. Вы неверно понимаете, что такое управляющий массив, и каким боком он приторочен. Коллекция контролов - плоская. А управляющий массив - это дополнительная структура, пришитая к коллекции ссылками из свойства Индекс контрола. Создайте форму, положите на неё три контрола (скажем, текстбокса), причём один свободный, а два - с управляющим массивом. Присвойте всем им разные .Text, чтобы различать. Запустите проект. Остановите (скажем, брейком на End Sub в Form_Load). Откройте окно Locals и изучите свойства итемов коллекции Controls формы. |
Сообщ.
#9
,
|
|
|
Цитата Akina @ Цитата naigs @ в коллекции может быть массив контролов, отличаются эти контролы тем, что у них одинаковые имена и определены индексы, именно индексами они и отличаются. Вы неверно понимаете, что такое управляющий массив, и каким боком он приторочен. Коллекция контролов - плоская. А управляющий массив - это дополнительная структура, пришитая к коллекции ссылками из свойства Индекс контрола. Создайте форму, положите на неё три контрола (скажем, текстбокса), причём один свободный, а два - с управляющим массивом. Присвойте всем им разные .Text, чтобы различать. Запустите проект. Остановите (скажем, брейком на End Sub в Form_Load). Откройте окно Locals и изучите свойства итемов коллекции Controls формы. Я так и делал. И такие выводы я сделал, когда посомтрел на коллекцию и увидел, что массив хранится также как и все остальные элементы. И у тех элементов которые не в массиве index не определен (в отладчике пишет, что элемент не в массиве), а у тех, кто в массиве Name совпадает, но определены Index. |
Сообщ.
#10
,
|
|
|
Тогда я вообще не понял, что собсно нужно... по ссылке выше загрузка нового контрола именно в массив через Load описана вполне вменяемо. И даже с примером.
|
Сообщ.
#11
,
|
|
|
Я не заметил метода Load, думал, что только через Add можно добавлять. Спасибо!
|
Сообщ.
#12
,
|
|
|
А можно ли программно создать массив? Load добавляет элементы уже к существующему массиву. Может можно перевести блоки добавленный методом Add в статус массива, но индекс устанавливать он не дает...
|