Partager via


Contrôles constitutifs

Les contrôles qui composent un contrôle utilisateur, appelés contrôles constitutifs, sont relativement peu flexibles en matière de rendu graphique personnalisé. Tous les contrôles Windows Forms gèrent leur propre rendu via leur propre OnPaint méthode. Comme cette méthode est protégée, elle n’est pas accessible au développeur et il n’est pas possible d’empêcher son exécution quand le contrôle est dessiné. Cela ne signifie pas pour autant que vous ne pouvez pas ajouter du code pour modifier l’apparence des contrôles constitutifs. Un rendu supplémentaire est possible en ajoutant un gestionnaire d’événements. Par exemple, supposons que vous créez un UserControl bouton nommé MyButton. Si vous souhaitez avoir un rendu supplémentaire au-delà de ce qui a été fourni par le Button, vous devez ajouter du code à votre contrôle utilisateur similaire à ce qui suit :

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.  
}  

Remarque

Certains contrôles Windows Forms, tels que TextBox, sont peints directement par Windows. Dans ces cas, la OnPaint méthode n’est jamais appelée, et par conséquent, l’exemple ci-dessus ne sera jamais appelé.

Ceci crée une méthode qui s’exécute chaque fois que l’événement MyButton.Paint s’exécute, ce qui ajoute une représentation graphique supplémentaire à votre contrôle. Notez que ceci n’empêche pas l’exécution de MyButton.OnPaint, et tout le dessin généralement effectué par un bouton est donc exécuté en plus de votre dessin personnalisé. Pour plus d’informations sur la technologie GDI+ et le rendu personnalisé, consultez Création d’images graphiques avec GDI+. Si vous voulez avoir une représentation unique de votre contrôle, le mieux est de créer un contrôle hérité et d’écrire pour celui-ci du code de rendu personnalisé. Pour plus d’informations, consultez Contrôles dessinés par l’utilisateur.

Voir aussi