powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сделать одно имя для динамически добавленных контроллов в массив
7 сообщений из 7, страница 1 из 1
Как сделать одно имя для динамически добавленных контроллов в массив
    #32432776
Guid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
при динамическом добавлении на форму текстовых полей, например, вот таким образом
Dim ctlTextBox() As VB.TextBox
ReDim ctlTextBox(CountControls) As VB.TextBox

For i = 0 To CountControls
Set ctlTextBox(i) = Me.Controls.Add("VB.TextBox", "ctlTextBox" & i, frSettings(0))
With ctlTextBox(i)
.Visible = True
.Enabled = True
End With
Next i
Создаю массив текстовых полей, но каждый элемент в массиве имеет свое имя
ctlTextBox0, ctlTextBox1 и т.д.
Как сделать одно, чтобы срабатывал для всех контролов один обработчик событий, например, ctlTextBox_Change
...
Рейтинг: 0 / 0
Как сделать одно имя для динамически добавленных контроллов в массив
    #32432834
Андрей Il
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно создать один элемент (Txt - TextBox) и создать из него массив.
Остальные элементы будут добавляться и их свойства будут изменяться через цикл:

For i=1 to 10
Load Txt(i)
Txt(i).Visible=True
Next i


По-моему, так!!!
...
Рейтинг: 0 / 0
Как сделать одно имя для динамически добавленных контроллов в массив
    #32432868
Giud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Сейчас попробую
...
Рейтинг: 0 / 0
Как сделать одно имя для динамически добавленных контроллов в массив
    #32432986
Guid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так не получается
Ломается на Load
...
Рейтинг: 0 / 0
Как сделать одно имя для динамически добавленных контроллов в массив
    #32433063
Андрей Il
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема с Load возникает, когда контрол не выступает в роли массива, у него значение индекса не установлено.

Чтобы Load Txt(i) не выдавал ошибок, необходимо, чтобы был создан контрол Txt, после чего его индекс должен приравняться нулю. После этого остальные контролы создаются и их свойства изменяются без проблем.

Сейчас, к сожалению, под рукой VB нет, поэтому не могу прислать конкретный пример.
...
Рейтинг: 0 / 0
Как сделать одно имя для динамически добавленных контроллов в массив
    #32433442
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создай в форме один контрол. Скопируй его в буфер(Ctrl+C), а потом нажми вставить (Ctrl-V). VB тебя спросит: "Создать массив Да или нет". Ответишь "Да". Удалишь лишний контрол с индексом (1). Потом в коде можешь добавлять и удалять контролы через Load и Unload, кроме контрола с индексом (0) (созданный в Design). Его можно убрать только через свойство Visible.

Максим.
...
Рейтинг: 0 / 0
Как сделать одно имя для динамически добавленных контроллов в массив
    #32433459
Андрей Il
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что подсказал МаксимВ, аналогично установке свойства контрола: index=0.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как сделать одно имя для динамически добавленных контроллов в массив
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]