Share via


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

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 recompilar el proyecto de control. Además, si hay otro proyecto de formularios Windows Forms abierto al mismo tiempo y que utiliza este componente, probablemente habrá que actualizar el proyecto para ver los cambios. Normalmente, es necesario cerrar y volver a abrir la ventana de diseño que contiene el componente.

Nota

Debe agregar una referencia al ensamblado en tiempo de diseño, System.Design.dll.Este ensamblado no está incluido en .NET Framework 4 Client Profile.Para agregar una referencia a System.Design.dll, debe cambiar la versión de .NET Framework de destino del proyecto a .NET Framework 4.

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