Практическое руководство. Выполнение настраиваемой инициализации для элементов управления в режиме конструктора
Обновлен: Ноябрь 2007
Настраиваемый конструктор можно использовать для инициализации компонентов и элементов управления при их создании в среде разработки.
Пример
В следующем примере кода демонстрируется инициализация элемента управления при его создании в среде разработки. Такое создание происходит при перетаскивании экземпляра элемента управление на форму, а также при запуске конструктора из формы. Полное описание этого примера кода см. в разделе Практическое руководство. Расширение внешнего вида и функциональности элементов управления в режиме конструктора.
' This demonstrates changing the appearance of a control while
' it is being designed. In this case, the BackColor property is
' set to LightBlue.
Public Overrides Sub InitializeNewComponent( _
ByVal defaultValues As IDictionary)
MyBase.InitializeNewComponent(defaultValues)
Dim colorPropDesc As PropertyDescriptor = _
TypeDescriptor.GetProperties(Component)("BackColor")
If colorPropDesc IsNot Nothing AndAlso _
colorPropDesc.PropertyType Is GetType(Color) AndAlso _
Not colorPropDesc.IsReadOnly AndAlso _
colorPropDesc.IsBrowsable Then
colorPropDesc.SetValue(Component, Color.LightBlue)
End If
End Sub
// This demonstrates changing the appearance of a control while
// it is being designed. In this case, the BackColor property is
// set to LightBlue.
public override void InitializeNewComponent(IDictionary defaultValues)
{
base.InitializeNewComponent(defaultValues);
PropertyDescriptor colorPropDesc =
TypeDescriptor.GetProperties(Component)["BackColor"];
if (colorPropDesc != null &&
colorPropDesc.PropertyType == typeof(Color) &&
!colorPropDesc.IsReadOnly &&
colorPropDesc.IsBrowsable)
{
colorPropDesc.SetValue(Component, Color.LightBlue);
}
}
Когда в среде разработки создается экземпляр элемента управления или компонента, вызывается метод InitializeNewComponent конструктора. В предыдущем примере кода свойство BackColor элемента управления задается с помощью PropertyDescriptor.
Компиляция кода
При внесении изменений в те части компонента, которые используются во время разработки, необходимо перестраивать проект элемента управления. Кроме того, если открыт другой проект Windows Forms, использующий данный компонент, то для отображения изменений, скорее всего, потребуется обновить проект. Обычно необходимо закрыть и повторно открыть окно разработки, в котором содержится компонент.