Для получения подробной информации по этому вопросу Google Поиск по В.Б. Initproperties
property already has an Initialize event in common with Class modules and other objects, such as forms. Вы можете удивиться, почему мы должны InitProperties событие, поскольку UserControl собственности уже Инициализация случае общего с класса модулей и других объектов, таких, как формы.
event happens too often, that is, every time an instance or your control "wakes up." Причина, по которой мы должны InitProperties для инициализации значений по умолчанию состоит в том, что инициализация происходит событие слишком часто, то есть, каждый раз инстанции или ваш контроль "просыпается". Вы только хотите умолчанию имущественных ценностей, который необходимо назначить, когда разработчики первые объекты новую копию вашего контроля на контейнер. После того, что вы хотите разработчиком чтобы иметь возможность определить стойких имущественных ценностей.
event, then you will have some very frustrated developers on your hands. ВНИМАНИЕ - не использовать события на Инициализировать Установить элемент управления ActiveX по умолчанию собственности Значения: Если поставить код для инициализации свойства, их значения по умолчанию в ваш пользовательский элемент управления ActiveX в Инициализация событие, а не в InitProperties событие, то вам есть очень разочарованы разработчикам на руки. Ваши значения по умолчанию будут использоваться значения разработчик установленного на дизайн времени каждый раз, когда разработчик запускает приложения, использующего ваш контроль.
--
object containing the values of your control’s custom, extender, and delegated properties. Недвижимость Сумка является стойким UserControl объект, содержащий значения ваших контроля в обычай, удлинители, и делегировал свойства. This means you can store property values in the Property Bag just before an instance of the UserControl is destroyed and then retrieve the stored values when a new instance of the UserControl "wakes up" in another part of the development life cycle. В самом деле, собственность Сумка настолько стойким, что он не получает уничтожили в случаях UserControl. Это означает, что вы можете хранить ценности имущества в собственность мешок непосредственно перед инстанции UserControl разрушена, а затем получать хранится значения, когда новый экземпляр UserControl "просыпается" в другую часть цикла разработки.
Недвижимость Сумка имеет два способа хранения и получения значений, соответственно:
WriteProperty метод
ReadProperty метод
Вы должны знать, как манипулировать собственности Сумка в следующих ситуациях, которые мы обсуждаем в разделах, сразу же после этого один:
method in the WriteProperties event procedure. Вы храните ценности в собственность PropertyBag, призывая его WriteProperty метод WriteProperties случае процедуры.
method in the ReadProperties event procedure. Вы извлечения имущественных ценностей от PropertyBag, призывая его ReadProperty метод ReadProperties случае процедуры.
method. Вы гарантируете, что мероприятие будет WriteProperties огонь по телефону PropertyChanged метод. Вы сможете сделать это, как правило, в собственности Пусть процедур ваши пользовательские свойства или в других соответствующих местах в коде, где стоимость хранения имущества изменений.
--
and WriteProperties events whenever it thinks that the instantiated object’s properties need to be re-initialized ( ReadProperties event fires) or stored for safekeeping ( WriteProperties event fires). Операционная среда пожаров UserControl 'S ReadProperties и WriteProperties событий, когда он думает, что инстанцирован свойств объекта необходимо повторно инициализировать (ReadProperties случае пожара), либо хранится на хранение (WriteProperties случае пожара).
Такая схема позволяет гораздо проще для вас, контроль автор, чтобы управлять этими свойствами, поскольку вам не придется думать о всех возможных случаях, когда стоимость недвижимости, возможно, необходимость чтения или записи. event procedures. Вам просто нужно поставить код для чтения и записи значения в собственность двух централизованных мест: ReadProperties и WriteProperties случае процедур.
event procedures receive a single parameter named PropBag. This PropBag parameter obviously represents the Property Bag object that holds the UserControl ’s property values. Оба ReadProperties и WriteProperties случае процедуры получать единый параметр с именем PropBag. PropBag Этот параметр очевидно, представляет собой объект собственности мешок, который содержит UserControl 'S имущественных ценностей.
parameter has one method for reading properties (ReadProperty) and another for writing properties (WriteProperty). PropertyBag объект представляет PropBag параметр имеет один метод чтения свойства (ReadProperty), а другой для записи свойства (WriteProperty).
method so you can retrieve persistent values for individual properties. Как правило, только код, который вы должны написать в ReadProperties случае процедура будет серию звонков на ReadProperty метод, вы можете получить стойкие значения для индивидуальных свойств.
method so you can store persistent values of individual properties. И наоборот, только код, который вы, как правило, необходимо написать в WriteProperties случае процедура будет серию звонков с таким WriteProperty метода вы можете сохранить стойкие ценности отдельных свойств.
--
event just before it fires the UserControl’ s Terminate event provided that at least one property value has changed. Visual Basic пожаров UserControl 'S WriteProperties событие незадолго до пожара он UserControl' S Завершить мероприятие при условии, что по крайней мере один имущества стоимостью не изменилось. Иными словами, WriteProperties случае пожара, когда текущий экземпляр контроля в ближайшее время будут уничтожены, и любое имущество, ценности, которые вы хотите сохраняются изменились, и, следовательно, должны быть сохранены.
Как и предполагает его название, вы используете WriteProperties случае процедуру, чтобы сохранить имущество стойких ценностей. for each property whose value you wish to save. Конкретный механизм вы используете для сохранения стоимости недвижимости состоит в том, чтобы позвонить в WriteProperty метод собственности Сумка для каждого имущества, стоимость которого вы хотели бы сохранить. event as a parameter named PropBag. The example code in Listing 13.7 shows how you would call the Property Bag ’s WriteProperty method to save individual property values. Недвижимость Сумка доступна в случае процедура WriteProperties событие как параметр с именем PropBag. Пример кода в распечатке 13,7 свидетельствует о том, как бы Вы назвать собственности Сумка 'S WriteProperty метод, чтобы сохранить имущество физических лиц ценностей. Заметьте, что мы используем любые хранилище было хранение имущества ценность как источник для текущей стоимости: иногда это может быть частным памяти переменной, и в других случаях она может быть свойство составных контроля (как в последней строке перед End Sub).
Используя WRITEPROPERTIES событие процедуру, чтобы сохранить ценности собственности на имущество мешок
Private Sub UserControl_WriteProperties (PropBag Как PropertyBag) '-магазин значений пользовательских свойств в собственности мешок
PropBag.WriteProperty "BackColor", BackColor
PropBag.WriteProperty "Цельсий", m_Celsius
PropBag.WriteProperty "Фаренгейт", m_Fahrenheit
PropBag.WriteProperty "TemperatureDate", m_TemperatureDate
PropBag.WriteProperty "Заголовок", lblCaption.Caption
End Sub
--
events whenever it thinks you may need their services. Система автоматически пожаров WriteProperties и ReadProperties событий, когда он думает, вам может потребоваться их услуги. Для того чтобы система знала собственности изменилась, вы должны обратиться к PropertyChanged метод. Примером этого будет, когда вы измените значения переменных, что частные реализует стоимости имущества. Эта система не будет иметь возможности узнать о том, что эта переменная связана с собственностью, и поэтому он не будет огня WriteProperties событие исключительно на основе изменения вы произвели.
В таких случаях вы можете позвонить PropertyChanged метод. Этот метод сообщает системе о том, что конкретное имущество изменилась, и так гарантирует, что мероприятие будет WriteProperties огонь до текущего экземпляра контроль уничтожены. Если вы написали соответствующий код в WriteProperties xvent, значит, ваше имущество ценности будут сохранены в собственности мешок.
method whenever you do something in code that will cause a change to a property whose value you wish to persist. Вы должны позвонить в UserControl 'S PropertyChanged метод, когда вы делаете-то код, который приведет к изменению ценностей, стоимость которых вы хотели бы сохраняются. or Property Set procedure. Наиболее типичные места для вы назвать PropertyChanged метод будет в собственности или собственности Пусть установленном порядке. Имейте в виду, что мы проверим CanPropertyChange метод, который мы обсуждаем в разделе "Вызов CanPropertyChange Метод Перед Разрешение стоимость имущества по изменению".
Призывающие PropertyChanged метод, чтобы WRITEPROPERTIES будет пожар
Недвижимость Пусть Цельсию (sValue Как Single)
Если CanPropertyChange ( "Цельсий") Then '-присвоить входящий стоимость будет в частных магазинах переменной
m_Celsius = sValue
PropertyChanged ( "Цельсий") '-ссылаться UserControl в PropertyChanged метод, он знает, для показа WriteProperties и хранить новое значение
Slider1.Value = m_Celsius'-выполнять другие методы хозяйствования специфичных для данного приложения
RecalcFahrenheitFromCelsius sValue
DisplayTempsFromSlider
End If
End Property
--
ReadProperties случае пожара, когда таможенного контроля является reinstantiated в какой-то момент в развитии цикла (проект, где он проживает было загружено, а его контейнер был инстанцирован, разработчик только что вступил в режиме запуска от дизайна режиме, или просто разработчик вернулись в режиме дизайна из перспективе режиме).
Заметьте, что мы сказали, что ReadProperties пожары, когда таможенного контроля, это снова инстанцирован. event doesn’t fire. Мы использовали эту формулировку по намеренно исключить случай, когда разработчик мест, например из контроля на контейнерных впервые с панели инструментов. Для таких впервые инстанцирования, ReadProperties случае не пожар. Вместо этого, InitProperties случае пожара (см. "Использование InitProperties события Установка по умолчанию Начав Недвижимость Ценности"). The Property Bag appears in the ReadProperties event procedure as a parameter named PropBag. You call PropBag’ s ReadProperty method for each property whose value you wish to restore. ReadProperties событие, так как его название подразумевает, это событие, что Вы будете использовать для восстановления значений свойств, которые были сохранены в собственности мешок. Имущество, мешок фигурирует в ReadProperties случае процедуру, как параметр с именем PropBag. PropBag Вы слово " S ReadProperty метод для каждого имущества, стоимость которого вы хотите восстановить.
. Отметим, что ReadProperty метод принимает два аргумента: имя собственности, как строку, а затем по умолчанию для имущества (в том случае, если стоимость имущества не была инициализирована в собственности мешок).
Мы хранить результаты каждого призыва к ReadProperties в соответствующей переменной или контроля над собственностью, которая реализует имущество в рамках этого контроля.
Используя READPROPERTIES событие процедуры для восстановления стойкие собственности из ценностей, имущества мешок
Private Sub UserControl_ReadProperties (PropBag как PropertyBag)
m_Celsius = PropBag.ReadProperty ( "Цельсий", 30)
m_TemperatureDate = PropBag.ReadProperty _
( "TemperatureDate", DateSerial (1997, 1, 1))
m_caption = PropBag.ReadProperty ( "Заголовок", Extender.Name)
BackColor = PropBag.ReadProperty ( "BackColor", Ambient.BackColor)
lblCaption.Caption = m_caption
End Sub
--