Compartilhar via


Como: Executar a inicialização personalizada para controles no modo de Design

Você pode usar o seu designer personalizado para inicializar os componentes e controles conforme eles são criados pelo ambiente de design.

Exemplo

O exemplo de código a seguir demonstra como inicializar um controle quando ele é criado pelo ambiente de design. Esta criação ocorre quando você arrasta uma instância do controle para o formulário e ele também ocorre quando você iniciar o designer do formulário. Para obter uma explicação completa deste exemplo de código, consulte Como: Estender a aparência e o comportamento dos controles no modo de Design.

' 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);
    }
}

Quando o ambiente de design cria uma instância do controle ou componente, ele chama seu designer InitializeNewComponent método. Do exemplo de código anterior, o controle BackColor propriedade é definida usando um PropertyDescriptor.

Compilando o código

Quando você faz alterações aos aspectos de um componente de tempo de design, você precisará reconstruir o projeto de controle. Além disso, se houver outro projeto Windows Forms que está aberto e usa esse componente, você provavelmente precisará atualizar o projeto para ver as alterações. Normalmente, você precisará fechar e reabrir a janela de design que contém o componente.

ObservaçãoObservação

Você deve adicionar uma referência ao assembly de tempo de design, System.Design.dll. Este assembly não está incluído na.NET Framework 4 o perfil do cliente. Para adicionar uma referência a System.Design.dll, você deve alterar a estrutura do projeto de destino para .NET Framework 4.

Consulte também

Tarefas

Como: Estender a aparência e o comportamento dos controles no modo de Design

Outros recursos

Designers personalizados