Cómo: Heredar de controles de formularios Windows Forms existentes

Actualización: noviembre 2007

Si desea extender la funcionalidad de un control existente, puede crear un control derivado de un control existente por medio de la herencia. Cuando herede de un control existente, heredará toda la funcionalidad y las propiedades visuales del control. Por ejemplo, si estuviera creando un control que heredara de Button, el nuevo control tendría la misma apariencia y funcionaría exactamente igual que un control Button estándar. A continuación, podría extender o modificar la funcionalidad del nuevo control por medio de la implementación de métodos y propiedades personalizados. En algunos controles, puede cambiar también la apariencia visual del control heredado reemplazando su método OnPaint.

Nota:

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de la configuración activa o la edición. Para cambiar la configuración, elija la opción Importar y exportar configuraciones en el menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.

Para crear un control heredado

  1. Cree un nuevo proyecto Windows.

    Este proyecto puede ser de cualquier tipo, como Aplicación para Windows o Biblioteca de controles de Windows. Si elige una Biblioteca de controles de Windows, puede utilizar el control en blanco que se proporciona y saltarse los pasos 2 y 3.

  2. En el menú Proyecto, elija Agregar control de usuario.

    Aparecerá el cuadro de diálogo Agregar nuevo elemento.

  3. En el cuadro de diálogo Agregar nuevo elemento, haga doble clic en Control personalizado.

    Se agregará un nuevo control personalizado al proyecto.

  4. En el Editor de código, busque la línea que especifica Control como clase base para la herencia. Cambie el nombre de la clase base al nombre del control del que desea heredar.

    Por ejemplo, si desea heredar de Button, la línea sería así:

    Inherits System.Windows.Forms.Button
    
    public class CustomControl1 : System.Windows.Forms.Button
    
    public class CustomControl1
       extends System.Windows.Forms.Button
    
  5. Implemente los métodos o propiedades personalizados que vaya a incorporar el control.

  6. Si desea modificar la apariencia gráfica del control, reemplace el método OnPaint.

    Nota:

    El hecho de reemplazar OnPaint no le permitirá modificar la apariencia de todos los controles. Los controles representados por Windows (por ejemplo TextBox) nunca llaman a su método OnPaint y, por tanto, no utilizan nunca el código personalizado. Consulte la documentación de Ayuda del control específico que desee modificar para comprobar si el método OnPaint está disponible. Para obtener una lista de todos los controles de formularios Windows Forms, vea Controles que se utilizan en formularios Windows Forms. Si un control no dispone del método OnPaint como método miembro, no podrá modificar su apariencia reemplazando este método. Para obtener más información acerca de la representación personalizada, vea Dibujo y representación personalizados de controles.

    Protected Overrides Sub OnPaint(ByVal pe As _
       System.Windows.Forms.PaintEventArgs)
       MyBase.OnPaint(pe)
       ' Insert code to do custom painting. If you want to completely
       ' change the appearance of your control, do not call
       ' MyBase.OnPaint(pe).
    End Sub
    
    protected override void OnPaint(PaintEventArgs pe)
    {
       // Do not call base.OnPaint if you want to completely
       // control the appearance of the control.
       base.OnPaint(pe);
       // Insert code to do custom painting.
    }
    
    protected void OnPaint(PaintEventArgs pe) 
    {
       // Do not call base.OnPaint if you want to completely
       // control the appearance of the control.
       super.OnPaint(pe);
       // Insert code to do custom painting.
    }
    
  7. Guarde y pruebe el control.

Vea también

Tareas

Cómo: Heredar de una clase de control

Cómo: Heredar de una clase UserControl

Cómo: Crear controles de formularios Windows Forms

Solucionar problemas de controladores de eventos heredados en Visual Basic

Conceptos

Variedades de controles personalizados