Cómo: Llevar a cabo una inicialización personalizada de controles en modo de diseño

Actualización: noviembre 2007

Puede utilizar un diseñador personalizado para inicializar componentes y controles a medida que son creados por el entorno de diseño.

Ejemplo

El ejemplo de código siguiente muestra cómo inicializar un control cuando es creado por el entorno de diseño. Dicha creación se produce cuando se arrastra una instancia del control a un formulario, así como cuando se inicia el diseñador de dicho formulario. Para obtener una explicación completa de este ejemplo de código, vea Cómo: Extender la apariencia y el comportamiento de los controles en modo de diseño.

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

Cuando el entorno de diseño crea una instancia de un control o componente, llama al método InitializeNewComponent del diseñador. En el ejemplo de código anterior, la propiedad BackColor del control se establece mediante un objeto PropertyDescriptor.

Compilar el código

Cuando se realizan cambios en los aspectos en tiempo de diseño de un componente, es necesario volver a generar el proyecto de control. Además, si hay otro proyecto de formularios Windows Forms abierto que utiliza este componente, deberá actualizar el proyecto para ver los cambios. Normalmente, es necesario cerrar y volver a abrir la ventana de diseño que contiene el componente.

Vea también

Tareas

Cómo: Extender la apariencia y el comportamiento de los controles en modo de diseño

Otros recursos

Diseñadores personalizados