OnPaint Yöntemini Geçersiz Kılma

.NET Framework'te tanımlanan herhangi bir olayı geçersiz kılmaya yönelik temel adımlar aynıdır ve aşağıdaki listede özetlenir.

Devralınan bir olayı geçersiz kılmak için

  1. Protected OnEventName yöntemini geçersiz kılın.

  2. Kayıtlı temsilcilerin On olayı alması için geçersiz kılınan OnEventName yönteminden temel sınıfın EventName yöntemini çağırın.

Paint Her Windows Forms denetiminin öğesinden Controldevraldığı olayı geçersiz kılması gerektiğinden Paint olay burada ayrıntılı olarak ele alınmalıdır. Temel Control sınıf türetilmiş bir denetimin nasıl çizilmesi gerektiğini bilmez ve yönteminde OnPaint herhangi bir boyama mantığı sağlamaz. OnPaint yöntemi Control yalnızca olayı kayıtlı olay alıcılarına iletirPaint.

How to: Develop a Simple Windows Forms Control ( Basit Bir Windows Forms Denetimi Geliştirme) bölümünde örnek üzerinde çalıştıysanız, yöntemini geçersiz kılmaya OnPaint ilişkin bir örnek gördünüz. Aşağıdaki kod parçası bu örnekten 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 boyanacak dikdörtgendir ve Graphics özelliği bir Graphics nesneye başvurur. Ad alanında sınıflar System.Drawing , yeni Windows grafik kitaplığı olan GDI+'nın işlevselliğine erişim sağlayan yönetilen sınıflardır. nesnenin Graphics noktaları, dizeleri, çizgileri, yayları, üç noktayı ve diğer birçok şekli çizme yöntemleri vardır.

Denetim, görsel görünümünü değiştirmesi OnPaint gerektiğinde yöntemini çağırır. Bu yöntem de olayı tetikler Paint .

Ayrıca bkz.