Основы офисного программирования и язык VBA


Метод Add (Добавить) - часть 2


В остальных случаях он возвращает объект из класса, определяемого значением ProgID. После добавления элемента управления возбуждается событие AddControl.

Давайте добавим элемент управления к окну во время работы программы. Допустим, диалоговое окно InsertElem содержит командную кнопку cmbNewCtrl "Добавить элемент" и группу из двух переключателей: Opb1 "поле ввода" и Opb2 "список":

Окно перед добавлением элемента

Рис. 13. 8.  Окно перед добавлением элемента

При выборе кнопки в окно будет вставляться в зависимости от того, какой из переключателей включен, либо два поля ввода с именами Text1 и Text2, первое из которых содержит приглашение "Введите имя", либо новый список NewList со списком имен.

Dim NewCtrl As Control Dim Inserted As Boolean

Private Sub UserForm_Initialize () Inserted = False Opb1. Value = True End Sub

Private Sub CommandButton1_Click () If Inserted = False Then If Opb1. Value = True Then ' выбрано поле ввода ' добавляем 2 поля ввода Set NewCtrl = Controls. Add ("Forms. TextBox. 1", "Text1") NewCtrl. Left = 96 NewCtrl. Top = 12 NewCtrl. Width = 80 NewCtrl. Height = 20 NewCtrl. Text = "Введите имя" Set NewCtrl = Controls. Add ("Forms. TextBox. 1", "Text2") Controls ("Text2"). Left = 96 Controls ("Text2"). Top = 50 Controls ("Text2"). Width = 80 Controls ("Text2"). Height = 20 Else ' добавляем список Set NewCtrl = Controls. Add ("Forms. ListBox. 1", "NewList") NewCtrl. Left = 96 NewCtrl. Top = 12 NewCtrl. Width = 80 NewCtrl. Height = 70 NewCtrl. AddItem ("Анна") NewCtrl. AddItem ("Елена") NewCtrl. AddItem ("Ирина") NewCtrl. AddItem ("Мария") End If Inserted = True Else: MsgBox ("Элемент уже добавлен!" & vbCrLf & "Второй добавить не могу!") End If

End Sub

Пример 13.1.

Вот результаты выбора командной кнопки при разных значениях переключателей:

Результаты вставки элементов

увеличить изображение
Рис. 13. 9.  Результаты вставки элементов




Начало  Назад  Вперед



Книжный магазин