Contrôles constitutifs
Les contrôles qui composent un contrôle utilisateur, appelés contrôles constitutifs, offrent relativement peu de latitude en matière de rendu graphique personnalisé. Tous les contrôles Windows Forms gèrent leur propre rendu par le biais de leur méthode OnPaint. Cette méthode étant protégée, elle n'est pas accessible au développeur, et son exécution lorsque le contrôle est peint ne peut donc pas être inhibée. Toutefois, cela ne vous empêche pas d'ajouter du code affectant l'apparence des contrôles constitutifs. Il est possible de définir un rendu supplémentaire en ajoutant un gestionnaire d'événements. Supposons que vous créez UserControl contenant un bouton appelé MyButton. Pour obtenir un autre rendu en plus de celui qui est déjà proposé par la classe Button, vous devez ajouter à votre contrôle utilisateur un code similaire à celui-ci :
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.
}
Notes
Certains contrôles Windows Forms, tels que TextBox, sont directement peints par Windows. La méthode OnPaint n'est jamais appelée pour ces contrôles ; l'exemple précédent ne peut donc jamais leur être appliqué.
Cet exemple crée une méthode qui s'exécute chaque fois que s'exécute l'événement MyButton.Paint, ce qui ajoute une représentation graphique supplémentaire à votre contrôle. Notez que cela n'empêche pas la méthode MyButton.OnPaint de s'exécuter ; ainsi, vous obtenez toute la peinture habituellement effectuée par un bouton en plus de votre peinture personnalisée. Pour plus d'informations sur la technologie GDI+ et le rendu personnalisé, consultez Création d'images graphiques avec GDI+. Si vous souhaitez donner à votre contrôle une représentation unique, la meilleure façon de procéder est de créer un contrôle hérité et d'écrire pour lui un code de rendu personnalisé. Pour plus d'informations, consultez Contrôles dessinés par l'utilisateur.
Voir aussi
Tâches
Comment : créer des objets graphiques pour le dessin