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

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 los valores de configuración o de edición activos. Para cambiar la configuración, elija la opción Importar y exportar configuraciones del menú Herramientas. Para obtener más información, vea Trabajar con valores de configuración.

Para crear un control heredado

  1. Cree un nuevo proyecto Aplicación de Windows Forms.

  2. En el menú Proyecto, elija Agregar nuevo elemento.

    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. Si usa Visual Basic, en la parte superior del Explorador de soluciones, haga clic en Mostrar todos los archivos. Expanda CustomControl1.vb y, a continuación, abra CustomControl1.Designer.vb en el Editor de código.

  5. Si usa C#, abra CustomControl1.cs en el Editor de código.

  6. Busque la declaración de clase, que hereda de Control.

  7. Cambie la clase base al control del que desea heredar.

    Por ejemplo, si desea heredar de Button, cambie la declaración de clase por lo siguiente:

    Partial Class CustomControl1
        Inherits System.Windows.Forms.Button
    
    public partial class CustomControl1 : System.Windows.Forms.Button
    
  8. Si usa Visual Basic, guarde y cierre CustomControl1.Designer.vb. Abra CustomControl1.vb en el Editor de código.

  9. Implemente los métodos o propiedades personalizados que vaya a incorporar el control.

  10. 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 e As _
       System.Windows.Forms.PaintEventArgs)
       MyBase.OnPaint(e)
       ' Insert code to do custom painting. 
       ' If you want to completely change the appearance of your control,
       ' do not call MyBase.OnPaint(e).
    End Sub
    
    protected override void OnPaint(PaintEventArgs pe)
    {
       base.OnPaint(pe);
       // Insert code to do custom painting.
       // If you want to completely change the appearance of your control,
       // do not call base.OnPaint(pe).
    }
    
  11. 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

Tutorial: Heredar de un control de formularios Windows Forms con Visual Basic

Tutorial: Heredar de un control de formularios Windows Forms con Visual C#

Conceptos

Variedades de controles personalizados

Historial de cambios

Fecha

Historial

Motivo

Julio de 2010

Actualizado para Visual Studio 2010.

Comentarios de los clientes.