Переопределение метода OnPaint
Основные шаги для переопределения любого события, определенные в .NET Framework идентичны и обобщены в следующем списке.
Чтобы переопределить наследуемое событие
Переопределите защищенный
On
EventName метод.Вызовите
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 событий.