Страница: 1 |
Страница: 1 |
Вопрос: Как перебрать Textbox'ы - Textbox4...Textbox28?
Добавлено: 19.03.07 10:40
Автор вопроса: LonerWanderer
Есть массив, данные из которого вносятся в textbox'ы на форме.
Нужно заполнить текстбоксы следующим образом:
Textbox4.value=Klemmy(1, 3),
Textbox5.value=Klemmy(2, 3)
...
Textbox28.value=Klemmy(25, 3)
Следующий код не работает:
For n = 1 To 25
TextBox(n + 3).Value = Klemmy(n, 3)
Next n
Можно ли как-нибудь по-другому обратиться к Textbox(N)?
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
VoVaN
ICQ: 4921085
Вопросов: 27
Ответов: 38
Профиль | | #1
Добавлено: 19.03.07 11:00
Есть 2 способа:
1. Создать массив текстбоксов. Для этого им всем надо присвоить одно и то же имя (например, Textbox4). Тогда код будет такой:
TextBox4(n).Value = Klemmy(n + 1, 3)
Next n
2. Работа с объектом Control. Но это лучше посмотреть в примерах, т. к. я не помню
Номер ответа: 2
Автор ответа:
LonerWanderer
Вопросов: 18
Ответов: 66
Профиль | | #2
Добавлено: 19.03.07 11:18
Хм. А как создать массив?
На переименование textbox4 в textbox4(0) - ошибка
textbox5 в textbox4 - тоже ошибка.
Номер ответа: 3
Автор ответа:
LonerWanderer
Вопросов: 18
Ответов: 66
Профиль | | #3
Добавлено: 19.03.07 11:25
Вот что написано здесь в разделе
Библиотека кодов - Работа с контролами - Добавить контрол во время выполнения программы:
Добавьте TextBox на форму
В свойствах TextBox'а измените Index на 0
Этот пример покажет, как добавить TextBox'ы во время выполнения программы
Вы получите новый TextBox под именем Text1(1).
Но может это написано для VB? У меня в VBA нет свойства INDEX у TEXTBOX.
Номер ответа: 4
Автор ответа:
bi-lya
Вопросов: 1
Ответов: 125
Профиль | | #4
Добавлено: 19.03.07 12:31
Массив контролов создается через WithEvents класса.
Посмотрите здесь: http://www.dimit.pochta.ru/wopr.html#2
Проверил - ваш пример работает
Номер ответа: 5
Автор ответа:
LonerWanderer
Вопросов: 18
Ответов: 66
Профиль | | #5
Добавлено: 19.03.07 13:02
Спасибо за ссылку. Будем пробовать.
Номер ответа: 6
Автор ответа:
bi-lya
Вопросов: 1
Ответов: 125
Профиль | | #6
Добавлено: 19.03.07 13:30
Извиняюсь, поправочка (зациклился на своей задаче) - WithEvents в вашем случае не нужен, просто объявляется в классе Public-переменная MSForms
Номер ответа: 7
Автор ответа:
vidxr
Вопросов: 2
Ответов: 5
Профиль | | #7
Добавлено: 28.03.07 14:35
For i = n1 To n2
chkName = "TextBox" + CStr(i)
Me.Controls(chkName).Value="fghgfh"
....
Номер ответа: 8
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #8
Добавлено: 28.03.07 15:06
1. Создать массив текстбоксов. Для этого им всем надо присвоить одно и то же имя (например, Textbox4). Тогда код будет такой:
For n = 0 To 24
TextBox4(n).Value = Klemmy(n + 1, 3)
Next n
Надо просто Next
Номер ответа: 9
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #9
Добавлено: 28.03.07 20:30
Надо просто тебе череп выписать, чтобы нефлудил )
Номер ответа: 10
Автор ответа:
KreAtoR
Вопросов: 120
Ответов: 438
Профиль | | #10
Добавлено: 29.03.07 10:12
эт мне штоли???
Номер ответа: 11
Автор ответа:
bi-lya
Вопросов: 1
Ответов: 125
Профиль | | #11
Добавлено: 30.03.07 10:57
LonerWanderer, надеюсь, вы уже разобрались со своим вопросом. Если нет - тема от 28.03 "Как отловить событие при смене control-а (textbox)". Ваш случай (как было сказано выше) - без WithEvents