Přepsání metody OnPaint
Základní kroky pro přepsání všech událostí definovaných v rozhraní .NET Framework jsou identické a jsou shrnuty v následujícím seznamu.
Přepsání zděděné události
Přepište chráněnou metodu
On
EventName.Volejte metodu
On
EventName základní třídy z přepsané metodyOn
EventName, aby zaregistrovaní delegáti obdrželi událost.
Událost Paint je zde podrobně popsána, protože každý ovládací prvek Windows Forms musí přepsat událost Paint, kterou dědí z Control. Základní Control třída neví, jak je potřeba nakreslit odvozený ovládací prvek a neposkytuje žádnou logiku malování v OnPaint metodě. Metoda OnPaintControl jednoduše odešle událost Paint registrovaným příjemcům událostí.
Pokud jste si prošli ukázku v Vývoj jednoduchého ovládacího prvku Windows Forms, viděli jste příklad přepsání metody OnPaint. Následující fragment kódu je převzat z této ukázky.
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);
}
}
Třída PaintEventArgs obsahuje data pro událost Paint. Má dvě vlastnosti, jak je znázorněno v následujícím kódu.
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 je obdélník, který se má malovat, a vlastnost Graphics odkazuje na objekt Graphics. Třídy v oboru názvů System.Drawing jsou spravované třídy, které poskytují přístup k funkcím GDI+, nové grafické knihovny Systému Windows. Objekt Graphics má metody kreslení bodů, řetězců, čar, oblouků, elips a mnoha dalších obrazců.
Ovládací prvek vyvolá svou OnPaint metodu pokaždé, když potřebuje změnit zobrazení vizuálu. Tato metoda zase vyvolá událost Paint.
Viz také
.NET Desktop feedback