Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Добавить элемент в форму / 9 сообщений из 9, страница 1 из 1
19.12.2005, 12:26
    #33443838
vera_t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить элемент в форму
Можно ли в visual basic добавить в форму элемент управления например textbox програмным способом?
Если можно, то как. Желательно пример.
...
Рейтинг: 0 / 0
19.12.2005, 12:51
    #33443913
Melkiades
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить элемент в форму
Положите на форму TextBox и установите ему Index = 0. В нужный момент новые элементы создаются с помощью оператора Load:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Form_Load()
    Dim i As Long
    For i =  1  To  8 
        Load Text1(i)
        With Text1(i)
            .Move  0 , Text1( 0 ).Height * (i -  1 )
            .Text = i
            .Visible = True
        End With
    Next i
End Sub
...
Рейтинг: 0 / 0
21.12.2005, 16:47
    #33449949
AndreyF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить элемент в форму
vera_tМожно ли в visual basic добавить в форму элемент управления например textbox програмным способом?
Если можно, то как. Желательно пример.

См. Help по Controls.Add
Там и пример есть.
...
Рейтинг: 0 / 0
23.12.2005, 07:10
    #33453422
vera_t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить элемент в форму
MelkiadesПоложите на форму TextBox и установите ему Index = 0. В нужный момент новые элементы создаются с помощью оператора Load:



Большое спасибо, сработал!

А вот такой вопрос возник, пробую Controls.Add

Код: plaintext
1.
2.
3.
4.
5.
Private Sub Command1_Click()
With UserForm1
Set Mycmd = .Controls.Add("Forms.TextBox.1", "ProgramBox", True)
End With
End Sub

Когда я выполняю эту процедуру из VBA Exel 2000, то она выполняется без ошибок и создает на форме текстовое поля, а когда из под VB6, то выдает ошибку:

Run-time error '13':
Type mismatch

Может кто-нибудь подскажет возможно ли вообще выполнить такую процедуру из VB6, может надо указать другие значения параметров?
...
Рейтинг: 0 / 0
23.12.2005, 08:17
    #33453447
Добавить элемент в форму
Код: plaintext
1.
2.
3.
4.
    Set NewTextBox = Controls.Add("VB.TextBox", "NewTextBox").Visible = True
    NewTextBox.Height =  500 
    NewTextBox.Width =  1000 
    NewTextBox.Top =  0 
    NewTextBox.Left =  0 
...
Рейтинг: 0 / 0
07.08.2006, 13:42
    #33903019
Focus_NEW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить элемент в форму
Melkiades Положите на форму TextBox и установите ему Index = 0. В нужный момент новые элементы создаются с помощью оператора Load:

Private Sub Form_Load()
Dim i As Long
For i = 1 To 8
Load Text1(i)
With Text1(i)
.Move 0, Text1(0).Height * (i - 1)
.Text = i
.Visible = True
End With
Next i
End Sub

Круто!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
16.04.2011, 23:46
    #37220036
zaraza_1m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить элемент в форму
С добавлением элемента понятно.
Как написать для добавленного элемента реакцию на воздействие?
То есть:
Private Sub Combo1_Change(Index As Integer)
ля ля ля
End Sub
это работает
Private Sub Combo1(0)_Change(Index As Integer)
ля ля ля
End Sub
Выдает ошибку, на стадии компиляции.
Мне необходимо динамически добавлять на форму порядка 20 combobox, и по результатам выбора в одних из них формировать элементы для выбора в других.
...
Рейтинг: 0 / 0
17.04.2011, 00:50
    #37220082
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить элемент в форму
zaraza_1m,

А Index As Integer что по твоему означает?
...
Рейтинг: 0 / 0
18.04.2011, 12:47
    #37221401
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добавить элемент в форму
Shocker.Prozaraza_1m,

А Index As Integer что по твоему означает?
Ну немного неудобно написать 20 раз обработчик событий, в то время как контрол с этим именем не существует и может не существовать. Куда проще написать единый обработчик событий.

У меня есть класс (который я кстати взял тут же), который может обрабатывать события коллекции контролов.
Т.е. заразе нужно при создании контрола программно пихать его в классовую коллекцию. А какой именно контрол сработал можно парсить из названия контрола в едином обработчике событий.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Добавить элемент в форму / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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