Для получения подробной информации по этому вопросу 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 "Caption", 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 WILL ПОЖАРАМ
Недвижимость Пусть Цельсию (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 ( "Caption", Extender.Name)
BackColor = PropBag.ReadProperty ( "BackColor", Ambient.BackColor)
lblCaption.Caption = m_caption
End Sub
--