Visual Basic 6. Руководство разработчика


         

Использование мастера страницы свойств - часть 3


В окно Project мастер добавил другую папку - Property Pages. Эта новая папка содержит файл свойств Caption. Выполните на ней двойной щелчок и страницы откроются в режиме конструирования. Обратите внимание, что кнопки OK, Cancel и Apply не являются частью формы. Они принадлежат элементу управления TabStrip, который отображает страницы свойств во время выполнения (этот элемент управления не доступен и не может быть даже настроен). Кроме того, нет формы для свойств Font, Color и Picture. Это стандартные страницы свойств и они управляются Visual Basic. Модифицировать страницы, сгенерированные мастером, нельзя, однако можно создать свою страницу для выбора цвета, если уж не нравится имеющаяся.

Итак, исследуем код, созданный мастером для страницы свойств CaptionProperties.

Программа 16.10. Станица свойств CaptionProperties

Private Sub txtCaption_Change()

Changed =

True

End Sub

Private Sub PropertyPage_ApplyChanges ()

SelectedControls(0).Caption = txtCaption.Text

End Sub

Private Sub PropertyPage_SelectionChanged ()

txtCaption.Text = SelectedControls(0).Caption

End Sub

Подпрограмма txtCaption_Change() вызывается каждый раз, когда пользователь что-либо печатает в поле txtCaption. Устанавливая переменную Changed в Тruе, код разблокирует кнопку Apply (которая заблокирована до тех пор, пока свойство Caption не изменится). Visual Basic использует свойство Changed для определения момента разблокирования кнопки Apply.

Конечно, новые установки не применяются к элементу управления автоматически. Код, который фактически производит изменения, должен быть вставлен в обработчик события PropertyPages_ApplyChanges, которое вызывается каждый раз, когда нажимается кнопка Apply. Это событие и модифицирует свойства элемента управления. Поскольку страница свойств является отдельной формой, она не может знать, какой элемент управления выбран в данный момент (поскольку на форме может присутствовать несколько экземпляров одного элемента управления). Из-за этого для доступа к выбранному элементу управления код использует объект SelectedControls() - семейство, которое представляет собой все выбранные элементы управления на форме. Заметим, что элемент семейства с индексом 0 является пер­вым выбранным элементом управления.

И, наконец, событие PropertyPage_SelectionChanged() вызывается всякий раз, когда пользователь выбирает другую вкладку страницы свойств. Это хорошее место для размещения кода инициализации. Код обработчика процедуры PropertyPage_SelectionChanged() присваивает текущие установки свойству Caption выбранного элемента управления элементу TextBox, в котором пользователю предлагается ввести новое значение свойства.




Содержание  Назад  Вперед