Compartir a través de


Controles constituyentes

Los controles que componen un control de usuario, o controles constituyentes tal como se denominan, son relativamente inflexibles en cuanto a la representación gráfica personalizada. Todos los controles de Windows Forms controlan su propia representación a través de su propio método OnPaint. Como este método está protegido, no es accesible al desarrollador y por tanto no se puede evitar ejecutarlo cuando se dibuja el control. Sin embargo, esto no significa que no se pueda agregar código que afecte a la apariencia de controles constituyentes. Otras representaciones pueden realizarse mediante la adición de un controlador de eventos. Por ejemplo, suponga que está creando un elemento UserControl con un botón llamado MyButton. Si desea tener una representación adicional más allá de la proporcionada por el elemento Button, debería agregar código a su control de usuario similar al siguiente:

Public Sub MyPaint(ByVal sender as Object, e as PaintEventArgs) Handles _  
   MyButton.Paint  
   'Additional rendering code goes here  
End Sub  
// Add the event handler to the button's Paint event.  
MyButton.Paint +=
   new System.Windows.Forms.PaintEventHandler (this.MyPaint);  
// Create the custom painting method.  
protected void MyPaint (object sender,
System.Windows.Forms.PaintEventArgs e)  
{  
   // Additional rendering code goes here.  
}  

Nota:

Algunos controles de Windows Forms, como TextBox, los dibuja directamente Windows. En estos casos, nunca se llama al método OnPaint y, por tanto, nunca se llamará al ejemplo anterior.

Esto crea un método que se ejecuta cada vez que se ejecuta el evento MyButton.Paint, agregando por tanto representación gráfica adicional al control. Tenga en cuenta que esto no impide la ejecución de MyButton.OnPaint y, por tanto, toda la pintura realizada con un botón se llevará a cabo además en el dibujo personalizado. Para más información acerca de la tecnología GDI+ y de la representación personalizada, consulte Crear imágenes gráficas con GDI+. Si desea obtener una representación única del control, la mejor línea de acción es crear un control heredado y escribir código de representación personalizado para él. Para más información, consulte Controles dibujados por el usuario.

Consulte también