Override del metodo OnPaint
I passaggi di base per eseguire l'override di qualsiasi evento definito in .NET Framework sono identici e sono riepilogati nell'elenco seguente.
Per eseguire l'override di un evento ereditato
Eseguire l'override del metodo EventName protetto
On
.Chiamare il
On
metodo EventName della classe base dal metodo EventName sottopostoOn
a override, in modo che i delegati registrati ricevano l'evento.
L'evento Paint viene descritto in dettaglio qui perché ogni controllo Windows Form deve eseguire l'override dell'evento Paint che eredita da Control. La classe base Control non conosce il modo in cui un controllo derivato deve essere disegnato e non fornisce alcuna logica di disegno nel OnPaint metodo . Il OnPaint metodo di Control invia semplicemente l'evento Paint ai ricevitori di eventi registrati.
Se è stato eseguito l'esempio in Procedura: Sviluppare un controllo Windows Form semplice, è stato illustrato un esempio di override del OnPaint metodo. Il frammento di codice seguente viene tratto da tale esempio.
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 contiene dati per l'evento Paint . Ha due proprietà, come illustrato nel codice seguente.
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 è il rettangolo da disegnare e la Graphics proprietà fa riferimento a un Graphics oggetto . Le classi nello spazio dei System.Drawing nomi sono classi gestite che forniscono l'accesso alla funzionalità di GDI+, la nuova libreria grafica di Windows. L'oggetto Graphics dispone di metodi per disegnare punti, stringhe, linee, archi, ellissi e molte altre forme.
Un controllo richiama il OnPaint relativo metodo ogni volta che deve modificare la visualizzazione visiva. Questo metodo genera a sua volta l'evento Paint .
Vedi anche
.NET Desktop feedback