OnPaint Yöntemini Geçersiz Kılma
Bu örnekte tanımlanan herhangi bir olayı geçersiz kılmaya .NET Framework temel adımlar aynıdır ve aşağıdaki listede özetlenmiştir.
Devralınan bir olayı geçersiz kılmak için
Korumalı
OnOnkılın.Geçersiz
OnOnyönteminden temel sınıfın EventName yöntemini çağırarakOnOnkayıtlı temsilcilerin olayı almalarını sağlar.
Burada Paint olay ayrıntılı olarak ele alınmıştır çünkü her Windows Forms denetiminden devralınan olayı geçersiz PaintControl kılmıştır. Temel Control sınıf, türetilmiş bir denetimin nasıl çizilecek gerektiğini bilmiyor ve yönteminde herhangi bir tablo mantığı OnPaint sağlamaz. OnPaintyöntemi yalnızca olayı kayıtlı olay ControlPaint alıcılara iletir.
How to: Develop a Simple Windows Forms Control'daki örnekte çalıştıysanız, yöntemini geçersiz kılma örneği gördünüz. Aşağıdaki kod parçası bu örnekten alınarak alınır.
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);
}
}
sınıfı PaintEventArgs olayın verilerini Paint içerir. Aşağıdaki kodda gösterildiği gibi iki özelliği vardır.
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 , çizilen dikdörtgendir ve özelliği Graphics bir nesneye Graphics başvurur. Ad alanında sınıflar, yeni grafik kitaplığı olan GDI+ işlevselliğine erişim System.Drawing sağlayan Windows sınıflarıdır. nesnede nokta, dize, çizgi, yay, üç nokta ve diğer birçok şekil çizmek Graphics için yöntemler vardır.
Denetim, görsel OnPaint ekranını değiştirmesi gereken her zaman yöntemini çağırır. Bu yöntem de olayı Paint yükselter.