Поделиться через


Практическое руководство. Выполнение настраиваемой инициализации для элементов управления в режиме конструктора

Настраиваемый конструктор можно использовать для инициализации компонентов и элементов управления при их создании в среде разработки.

Пример

В следующем примере кода демонстрируется инициализация элемента управления при его создании в среде разработки. Такое создание происходит при перетаскивании экземпляра элемента управление на форму, а также при запуске конструктора из формы. Полное описание этого примера кода см. в разделе Практическое руководство. Расширение внешнего вида и функциональности элементов управления в режиме конструктора.

' 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, использующий данный компонент, то для отображения изменений, скорее всего, потребуется обновить проект. Обычно необходимо закрыть и повторно открыть окно конструирования, в котором содержится компонент.

Примечание

Необходимо добавить ссылку на сборку времени разработки — System.Design.dll.Эта сборка не входит в клиентский профиль платформы .NET Framework 4.Чтобы добавить ссылку на сборку System.Design.dll, необходимо изменить целевую рабочую среду проекта на .NET Framework 4.

См. также

Задачи

Практическое руководство. Расширение внешнего вида и функциональности элементов управления в режиме конструктора

Другие ресурсы

Пользовательские конструкторы