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


         

Цикл жизни элемента управления


Давайте поэкспериментируем немного с событиями кнопок элемента управ­ления. Сделайте следующее.

1. Переключатель в окно UserControl и выполните на нем двойной щелчок, чтобы открыть окно Code.

2. Найдите события Initialize, InitProperties и Terminate в раскрывающемся списке справа. В каждое из них введите оператор Debug. Print с последующим именем события, как показано ниже.

Private Sub UserControl_Initialize()

Debug.Print "initializing control"

End Sub

Private Sub UserControl InitProperties()

Debug.Print "initializing properties"

End Sub

Private Sub UserControl_Terminate()

Debug.Print "terminating control"

End Sub

3. Закройте окно UserControl и возвратитесь к тестовой форме. Поместите экземпляр нового элемента управления на форму, и наблюдайте за окном проверки. Будут отображены следующие сообщения:

initializing control

initializing properties

При помещении элемента управления на форму сначала инициализируется сам элемент, а затем инициализируются его свойства.

Примечание

Операторы Print исполняются при переключении UserControl на тестовую форму. Даже тогда, когда приложение не запускается, код выполняется! Чтобы понять такое поведение, необходимо стать на место конструктора элемента управления ActiveX. Когда на форме размещается обычный элемент управления ActiveX, типа элемента TextBox, то выполняется некоторый код. Это то, что мы только что видели. Элементы управления ActiveX запускаются всегда, независимо от того, принадлежат ли они форме, которая выполняется, или нет. Как же еще проверить изменился ли у элемента управления шрифт или цвет фона, задаваемые разработчиком?

4. Теперь установите свойство Title и выполните тестовое приложение. Два новых сообщения появляются в окне проверки (сначала необходимо очистить текущее содержание окна проверки):

terminating control

initializing control

Элемент управления, который находился на форме в режиме конструирования, был удален, а новый — инициализирован. Все его свойства были инициализированы значениями по умолчанию, а значением по умолчанию для свойства




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