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


         

Цикл жизни элемента управления - часть 2


Title была пустая строка. Именно поэтому он исчез.

Если еще раз остановить приложение, в окне Debug появится следующее сообщение:

initializing control

На сей раз был удален экземпляр элемента управления режима выполнения, а экземпляр режима конструирования - инициализирован. Каждый раз, когда происходит переключение из режима конструирования в режим выполнения, один экземпляр элемента управления удаляется, а новый создается.

В любом случае, при переходе из одного режима в другой свойства элемента должны быть сохранены. Чтобы это сделать, выполните следующее.

1. Переключитесь обратно в окно Code и введите оператор Print в событиях Read Properties и Write Properties.

2. Переключитесь обратно на тестовый проект, установите свойство Title, снова выполните приложение — и вы увидите следующую последовательность сооб­щений:

writing properties

terminating control

initializing control

reading properties

Visual Basic сохраняет значения свойств в окне Properties и удаляет экземпляр элемента режима конструирования. Затем он инициализирует экземпляр режима выполнения и считывает те же самые свойства. Таков цикл жизни элемента управления ActiveX.

Примечание

Если Visual Basic знает, какие значения необходимо сохранить, почему он не может запомнить их, пока создается новый экземпляр элемента управления? Почему Visual Basic сохраняет значения свойств и затем считывает их снова? Казалось бы, сделать это так просто, но обратите внимание на событие Terminate между записью и чтением значений свойств. Между исчезновением одного и появлением другого экземпляра элемент управления просто не существует! При всей кажущейся нелепости ситуации именно так ведут себя элементы управления.

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

События кнопок в цикле жизни элемента управления

При размещении элемента управления на форме происходят следующие события.

Initialize.




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