Compartilhar via


Como executar uma inicialização personalizada para controles no modo de design

Você pode usar o seu designer personalizado para inicializar os componentes e controles como são criadas 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ê inicia o criador 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 seu 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.

Dica

Você deve adicionar uma referência ao assembly em 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