Substitution de la méthode OnPaint
Les étapes de base pour remplacer tout événement défini dans le .NET Framework sont identiques et sont résumées dans la liste suivante.
Pour remplacer un événement hérité
Remplacez la méthode EventName protégée
On
.Appelez la
On
méthode EventName de la classe de base à partir de la méthode EventName substituéeOn
, afin que les délégués inscrits reçoivent l’événement.
L’événement Paint est abordé en détail ici, car chaque contrôle Windows Forms doit remplacer l’événement Paint dont il hérite Control. La classe de base Control ne sait pas comment un contrôle dérivé doit être dessiné et ne fournit aucune logique de peinture dans la OnPaint méthode. La OnPaint méthode de répartition simple de Control l’événement Paint vers les récepteurs d’événements inscrits.
Si vous avez utilisé l’exemple dans How to : Develop a Simple Windows Forms Control, vous avez vu un exemple de substitution de la OnPaint méthode. Le fragment de code suivant est extrait de cet exemple.
Public Class FirstControl
Inherits Control
Public Sub New()
End Sub
Protected Overrides Sub OnPaint(e As PaintEventArgs)
' Call the OnPaint method of the base class.
MyBase.OnPaint(e)
' Call methods of the System.Drawing.Graphics object.
e.Graphics.DrawString(Text, Font, New SolidBrush(ForeColor), RectangleF.op_Implicit(ClientRectangle))
End Sub
End Class
public class FirstControl : Control {
public FirstControl() {}
protected override void OnPaint(PaintEventArgs e) {
// Call the OnPaint method of the base class.
base.OnPaint(e);
// Call methods of the System.Drawing.Graphics object.
e.Graphics.DrawString(Text, Font, new SolidBrush(ForeColor), ClientRectangle);
}
}
La PaintEventArgs classe contient des données pour l’événement Paint . Il a deux propriétés, comme indiqué dans le code suivant.
Public Class PaintEventArgs
Inherits EventArgs
...
Public ReadOnly Property ClipRectangle() As System.Drawing.Rectangle
...
End Property
Public ReadOnly Property Graphics() As System.Drawing.Graphics
...
End Property
...
End Class
public class PaintEventArgs : EventArgs {
...
public System.Drawing.Rectangle ClipRectangle {}
public System.Drawing.Graphics Graphics {}
...
}
ClipRectangle est le rectangle à peindre et la Graphics propriété fait référence à un Graphics objet. Les classes de l’espace System.Drawing de noms sont des classes managées qui fournissent l’accès aux fonctionnalités de GDI+, la nouvelle bibliothèque graphique Windows. L’objet Graphics a des méthodes pour dessiner des points, des chaînes, des lignes, des arcs, des points de suspension et de nombreuses autres formes.
Un contrôle appelle sa OnPaint méthode chaque fois qu’il doit modifier son affichage visuel. Cette méthode déclenche à son tour l’événement Paint .
Voir aussi
.NET Desktop feedback