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

  1. Korumalı OnOn kılın.

  2. Geçersiz OnOn yönteminden temel sınıfın EventName yöntemini çağırarak OnOn kayı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.

Ayrıca bkz.