Controles constituyentes
Actualización: noviembre 2007
Los controles que componen un control de usuario, que se denominan controles constituyentes, son relativamente inflexibles en lo relativo a la representación gráfica personalizada. Todos los controles de formularios Windows Forms controlan su propia representación por medio de su método OnPaint. Este método está protegido, por lo que no permite el acceso al programador y, por lo tanto, no se puede evitar que se ejecute al dibujar el control. Esto no significa, sin embargo, que no pueda agregar código que afecte a la apariencia de los controles constituyentes. Para disponer de más posibilidades de representación, puede agregar un controlador de eventos. Por ejemplo, suponga que está creando un control UserControl con un botón denominado MyButton. Si desea realizar otras tareas de representación distintas de las que proporciona la clase Button, puede agregar al control de usuario código 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.
}
// Add the event handler to the button's Paint event.
MyButton.add_Paint(new
System.Windows.Forms.PaintEventHandler(this.MyPaint));
// Create the custom painting method.
protected void MyPaint(System.Object sender,
System.Windows.Forms.PaintEventArgs e)
{
// Additional rendering code goes here.
}
Nota: |
---|
Algunos controles de formularios Windows Forms, como TextBox, los dibuja Windows directamente. En estas instancias, nunca se llama al método OnPaint, por lo que nunca se llamaría al ejemplo anterior. |
Este ejemplo crea un método que se ejecuta siempre que se ejecuta el evento MyButton.Paint; de esta manera, se agrega al control una representación gráfica adicional. Observe que esto no impide la ejecución de MyButton.OnPaint; por tanto, además de la representación personalizada, se seguirán realizando todas las tareas de dibujo que suele efectuar un botón. Para obtener información detallada acerca de la tecnología GDI+ y de la representación personalizada, vea Crear imágenes gráficas con GDI+. Si desea obtener una representación única del control, lo más recomendable es crear un control heredado y escribir para él código de representación personalizado. Para obtener información detallada, vea Controles dibujados por el usuario.
Vea también
Tareas
Cómo: Crear objetos Graphics para dibujar
Conceptos
Controles dibujados por el usuario
Variedades de controles personalizados