Новые combobox в run-time

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
sniff
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 24.02.2004 (Вт) 11:04

Новые combobox в run-time

Сообщение sniff » 23.03.2004 (Вт) 11:53

Вот такой вопрос:

существует форма. Нужно в run-tim'е создать на ней коллекцию из N combobox'ов, а затем расставить в нужных местах формы.

Расставить я смогу, а вот создать коллекцию - не получается.
Помогите пожалуйста.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.03.2004 (Вт) 12:06

Все просто. Так как contrоl arrays не создаются в рантайме, то просто в цикле юзаем оыбчный метод Add соллекции Form.Controls:

Код: Выделить всё

for i = 1 to 1048576
form.controls.add "VB.ComboBox","Combo" & i
next i

sniff
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 24.02.2004 (Вт) 11:04

Сообщение sniff » 23.03.2004 (Вт) 12:20

Спасибо!

А вот если комбобоксы должны лежать на гриде, тогда на что ссылаться при создании коллекции?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.03.2004 (Вт) 12:51

Грид - не контейнер. Ссылаться по прежнему на форму. Просто потом позиционируй комоббксы куда надо и выставляй ихх поверх грида методом .ZOrder

sniff
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 24.02.2004 (Вт) 11:04

Сообщение sniff » 23.03.2004 (Вт) 13:05

Thx a lot!!!! :D

sniff
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 24.02.2004 (Вт) 11:04

Сообщение sniff » 23.03.2004 (Вт) 14:06

А как тогда обрабатывать события клика на этих комбобоксах?

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 25.03.2004 (Чт) 21:31

Вариантов тут два: или своей оконной процедурой (с проверкой по hWnd контрола), или же ты все-таки используешь массив контролов. Ну чего тебе стоит кинуть на форму 1 (один) комбик, выставить ему Visible = False и Index = 0. А потом просто в цикле:
Код: Выделить всё
Load Me.cmb_Arr(Me.cmb_Arr.Ubound + 1)

Только не забудь, что спаунятся они невидимыми. Визибль выставь потом.
А на выходе - аналогично:
Код: Выделить всё
Do While Me.cmb_Arr.Count > 1
  Unload Me.cmb_Arr(Me.cmb_Arr.Ubound)
Loop

А в обработчике события у тебя тогда индекс конкретного комбика появится - не ошибешься.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 13

    TopList  
cron