Show / Hide Table of Contents

Переопределение метода OnPaint

Основные шаги для переопределения любого события, определенные в .NET Framework идентичны и обобщены в следующем списке.

Чтобы переопределить наследуемое событие

  1. Переопределите защищенный On EventName метод.

  2. Вызовите On EventName метод базового класса из переопределенного On EventName метод, чтобы зарегистрированные делегаты получили событие.

Paint Событий описано здесь подробно, так как каждый элемент управления Windows Forms необходимо переопределить Paint событие, он наследует от Control. Базовый Control класс не знает, как производный элемент управления должен быть нарисован и не обеспечивает логику рисования в OnPaint метод. OnPaint Метод Control просто отправляет 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
  • Определение событий
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX