مشاركة عبر


تجاوز الأسلوب OnPaint

The أساسى steps for overriding أي حدث defined في the .NET Framework are identical و are summarized في the following قائمة.

إلى يمنع an inherited حدث

  1. يمنع the protected OnEventName أسلوب.

  2. استدعاء Onحدث اسم أسلوب فئة أساسية من Onحدث اسم تم الطريقة، حتى التي مسجَّل المفوضون تلقي حدث.

Paintحدث هو dهوcussed بالتفصيل هنا لأن النماذج كل Windows يجب أن يتجاوز التحكم Paintالأحداث التي ترث من Control. أساس Controlلم تعرف فئة كيف يحتاج عنصر تحكم مشتقة إلى رسم وعدم توفر أي منطق الرسم في OnPaintالأسلوب. OnPaintأسلوب Controldispatches ببساطة Paintحدث إلى مسجَّل مستقبلات الأحداث.

إذا قمت بالعمل من خلال نموذج في كيفية القيام بما يلي: قم بتطوير عنصر تحكم Windows Forms بسيط، كنت تشاهد مثالاً لتجاوز OnPaintالأسلوب. جزء تعليمات برمجية التالية هو مأخوذة من هذا النموذج.

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);
   } 
} 

PaintEventArgsفئة يحتوي على بيانات الخاصة Paintحدث. تحتوي الخاصيتين، كما هو موضح في التالية تعليمات برمجية.

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هو المستطيل تلوين، وGraphicsخاصية تشير إلىGraphicsكائن. فئات في System.Drawingتتم مدارة مساحة الاسم فئات التي توفر الوصول إلى الوظائف GDI+، جديدة Windows الرسومات المكتبة. Graphicsيحتوي الكائن على وظائف إلى رسم نقاط، سلاسل، الخطوط والأقواس، علامات الحذف وكثيرة غير ذلك أشكال.

استدعاء عنصر تحكم الخاص به OnPaintأسلوب عندما يحتاج إلى تغيير به عرض المرئي. هذه الطريقة في تقوم بتشغيل إصدار Paintحدث.

راجع أيضًا:

المبادئ

تقديم عنصر تحكم Windows Forms

تعريف أحداث في نماذج Windows عناصر التحكم

موارد أخرى

معالجة و إظهار الأحداث