Добавленные таким путем элементы управления
Рис. П-3. Форма с программно добавленными элементами управления
Добавленные таким путем элементы управления живут в форме только до ее закрытия. Но, заметьте, если скрыть форму, вызвав метод Hide, то при повторном ее открытии элементы управления сохраняются. Перейдем теперь непосредственно к ответу на первый поставленный вопрос. Для его решения потребуются средства, ранее не упоминавшиеся в книге. Нам понадобятся объекты класса VBComponent - компоненты VB-проекта (объекта класса VBProject). Чтобы можно было с ними работать, необходимо включить дополнительную ссылку на библиотеку VBIDE (Visual Basic Extensibility). Ну, а теперь отвечаю конкретно на первый поставленный вопрос. Можно программно добавить элементы управления так, чтобы они сохранялись в форме точно также как сохраняются элементы, созданные в период проектирования. Для этого нужно работать с объектом, представляющим форму в режиме проектирования, используя свойство Designer объекта VBComponent. Вот как это делается:
Public Sub AddDesignControls() 'Эта процедура добавляет командную кнопку и окно редактирования в форму Dim MyForm As UserForm 'Создаем форму этапа проектирования
Set MyForm = ActiveDocument.VBProject.VBComponents("UserForm1").Designer With MyForm
'Добавляем окно редактирования Set Mycmd = .Controls.Add("Forms.TextBox.1", "ProgramBox", True) Mycmd.Left = .TextBox1.Left Mycmd.Top = .TextBox1.Top + 100 Mycmd.Width = .TextBox1.Width Mycmd.Height = .TextBox1.Height Mycmd.Text = "New Control - " & Mycmd.Name
'Добавляем командную кнопку Set Mycmd = .Controls.Add("Forms.CommandButton.1", "ProgramButton", True) Mycmd.Left = .CommandButton1.Left Mycmd.Top = .CommandButton1.Top + 100 Mycmd.Width = .CommandButton1.Width Mycmd.Height = .CommandButton1.Height Mycmd.Caption = "DesignButton"
End With
'Удаляем командную кнопку, вызывающую эту процедуру. 'Эта кнопка может работать лишь раз, по крайней мере, 'пока в режиме проектирования не будут удалены добавленные элементы. 'Заметьте, кнопку можно только удалить, но нельзя сделать ее невидимой.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий