Тверской государственный университет
Опубликован: 13.09.2006 | Доступ: свободный | Студентов: 3491 / 369 | Оценка: 4.65 / 4.29 | Длительность: 30:37:00
Специальности: Программист, Менеджер
Лекция 14:

Проектирование интерфейса. Объекты диалоговых окон

Методы

Метод Add (Добавить)

Позволяет добавить элемент управления во время исполнения программы. С его помощью можно добавить страницу в набор страниц, вкладку в полосу вкладок или любой элемент управления на страницу или диалоговое окно.

Вызов метода Add для вставки страницы или вкладки имеет вид:

Set Object = объект. Add ([Name [,  Caption [,  index]]])

Для добавления элемента управления к диалоговому окну или странице используется присвоение:

Set Control = объект. Add (ProgID [,  Name [,  Visible]])

Здесь объект - имя объекта (коллекции), к которому добавляется элемент, Name - задает имя (свойство Name ) добавляемого объекта (если его нет, система присвоит добавленному элементу стандартное имя), Caption - задает заголовок страницы или вкладки, появляющийся на закладке, index - указывает положение страницы или вкладки в коллекциях Pages или Tabs, соответственно. ProgID - программный идентификатор добавляемого элемента, который представляет собой строку символов (без пробелов), идентифицирующую класс объектов. У этой строки структура обычно такова: <Поставщик>. <Компонента>. <Версия>. Программный идентификатор ProgID отображается на идентификатор класса ( CLSID ), т. е. на уникальный идентификатор ( UUID ), регистрируемый в системном реестре Windows. Необязательный булев параметр Visible указывает, виден ли объект на экране. По умолчанию он равен True (объект виден).

Вот значения программного идентификатора ProgID для стандартных элементов управления:

флажок Forms. CheckBox. 1
комбинированный список Forms. ComboBox. 1
командная кнопка Forms. CommandButton. 1
рамка Forms. Frame. 1
изображение Forms. Image. 1
метка Forms. Label. 1
список Forms. ListBox. 1
набор страниц Forms. MultiPage. 1
переключатель Forms. OptionButton. 1
полоса прокрутки Forms. ScrollBar. 1
счетчик Forms. SpinButton. 1
полоса вкладок Forms. TabStrip. 1
поле ввода Forms. TextBox. 1
выключатель Forms. ToggleButton. 1

Метод Add возвращает объект Page при вставке страницы в набор страниц и объект Tab при вставке вкладки в полосу вкладок. В остальных случаях он возвращает объект из класса, определяемого значением 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. Результаты вставки элементов

Метод AddItem (Добавить элемент)

Этот метод позволяет добавлять элементы в списки и комбинированные списки. В списки с несколькими столбцами метод AddItem добавляет строку элементов. Его вызов имеет вид:

Перем = объект. AddItem ([Item [,  varindex]])

или

объект. AddItem [Item [,  varindex]]

Здесь Перем - переменная типа Variant, объект - объект-список, в который добавляется элемент, Item - добавляемый элемент, varindex - номер добавляемого элемента или строки. Первый элемент (строка) в списке имеет номер 0. Значение varindex не должно превышать числа элементов списка ListCount. Если этот параметр не задан, элемент вставляется в конец списка. Поскольку в первом случае Перем в результате вызова получает пустое значение Empty, чаще используется второй вариант вызова.

Если в списке несколько столбцов, вставляемая непустая строка содержит непустое значение элемента для первого столбца и пустые значения для остальных. Чтобы установить непустые элементы во втором и остальных столбцах, можно использовать свойство List. Например, если в примере с добавлением списка NewList требуется, чтобы этот список содержал два столбца: "имя" и "фамилия", то блок операторов для его создания может выглядеть так:

Else	' добавляем список
			AddElem. Width = 350 'Расширяем форму
			Set NewCtrl = Controls. Add ("Forms. ListBox. 1",  "NewList") 
			NewCtrl. ColumnCount = 2                'число столбцов списка
			NewCtrl. Left = 96
			NewCtrl. Top = 12
			NewCtrl. Width = 200
			NewCtrl. Height = 70
			NewCtrl. AddItem  ("Анна")              '1-ая строка,  1-ый столбец
			NewCtrl. List (0,  1)  = "Павлова"      '1-ая строка,  2-ой столбец
			NewCtrl. AddItem  ("Елена")             '2-ая строка,  1-ый столбец
			NewCtrl. List (1,  1)  = "Образцова"    '2-ая строка,  2-ой столбец
			NewCtrl. AddItem  ("Ирина")             '3-я строка,   1-ый столбец
			NewCtrl. List (2,  1)  = "Архипова"     '3-я строка,   2-ой столбец
			NewCtrl. AddItem  ("Мария")             '4-ая строка,  1-ый столбец
			NewCtrl. List (3,  1)  = "Каллас"       '4-ая строка,  2-ой столбец

Теперь диалоговое окно после добавления списка будет выглядеть так:

Список с двумя столбцами

Рис. 13. 10. Список с двумя столбцами

Для элементов, у которых установлен источник списка (свойство RowSource ), метод AddItem неприменим.

Метод Clear (Очистить)

Этот метод удаляет все объекты, входящие в некоторый объект или коллекцию объектов. Из списка и комбинированного списка Clear удаляет все элементы списков, т. е. делает их пустыми. Из элементов набор страниц и полоса вкладок им удаляются все страницы и вкладки. Из коллекции элементов управления Controls метод Clear удаляет элементы, созданные при исполнении программы методом Add. Попытка удалить элементы, созданные на этапе проектирования приводит к ошибке. Нельзя также "чистить" элементы, данные которых связаны с основным объектом приложения, например, списки с установленным свойством RowSource. Вызов метода имеет вид:

объект. Clear

где объект - очищаемый объект или коллекция объектов.

Метод Copy (Копировать)

Этот метод выполняет копирование содержимого объекта в буфер обмена. Что именно копируется, зависит от объекта. Для поля ввода и комбинированного списка копируется выделенный в текущий момент текст. Для диалогового окна, страницы и рамки копируются активные (выбранные) в данный момент элементы. Вызов метода имеет вид:

объект. Copy

где объект - объект, для которого вызывается метод.

Копирование объекта не изменяет его.

Метод Cut (Вырезать)

В результате вызова этого метода информация, выделенная в объекте, удаляется из него и помещается в буфер обмена. Для поля ввода и комбинированного списка удаляется и копируется в буфер текст, выделенный в текущий момент. Для диалогового окна, страницы и рамки удаляются активные (выбранные) в данный момент элементы. Удаляться могут лишь те элементы, что созданы в процессе работы программы. Вызов метода имеет вид:

объект. Cut

где объект - объект, для которого вызывается метод.

Пример применения метода Cut приведен ниже при описании метода Paste.

Метод DropDown (Вывести список)

Раскрывает список элементов, входящих в комбинированный список. Вызов этого метода имеет вид:

объект. DropDown

где объект - тот комбинированный список, для которого вызывается метод.

Метод DropDown можно использовать, чтобы показать список элементов из комбинированного списка в ответ на событие, возникшее в другом управляющем элементе. Мы включили в наше диалоговое окно еще одну возможность, ѕ добавлять комбинированный список. Вот новый фрагмент кода:

Else 'добавляем комбинированный список
	AddElem. Width = 350 'Расширяем форму
	Set NewCtrl = Controls. Add ("Forms. ComboBox. 1",  "List2") 
	Controls ("List2"). ColumnCount = 2            'число столбцов списка
	Controls ("List2"). Left = 96
	Controls ("List2"). Top = 12
	Controls ("List2"). Width = 200

	Controls ("List2"). AddItem  ("Федор") 
	Controls ("List2"). List (0,  1)  = "Шаляпин"
	Controls ("List2"). AddItem  ("Сергей")  
	Controls ("List2"). List (1,  1)  = "Лемешев"
	Controls ("List2"). AddItem  ("Лучано") 
	Controls ("List2"). List (2,  1)  = "Паваротти"
	Controls ("List2"). AddItem  ("Пласидо")  
	Controls ("List2"). List (3,  1)  = "Доминго"

	Controls ("List2"). DropDown

Теперь диалоговое окно при добавлении комбинированного списка выглядит так:

Показ элементов комбинированного списка

Рис. 13. 11. Показ элементов комбинированного списка
полина есенкова
полина есенкова
Дмитрий Вологжин
Дмитрий Вологжин
Добрый день, прошел тесты с 1 по 9, 10 не сдал, стал читать лекцию и всё пройденные тесты с 1 по 9 сбросились, когда захотел пересдать 10 тест.