Partilhar via


Substituindo o método OnPaint

As etapas básicas para a substituição de qualquer evento definido no .NET Framework são idênticos e estão resumidos na lista a seguir.

Para substituir um evento herdado

  1. Substituir o protegidoOnEventName método.

  2. Chamar o OnEventName método da classe base from a substituição OnEventName método, para que registrado delegados receberão o evento.

The Paint evento é discutido em detalhes aqui porque todos os controles Windows Forms devem substituir o Paint evento que ele herda de Control. A base Control classe não sabe como um controle derivado deve ser desenhado e não fornece qualquer lógica de pintura no OnPaint método. The OnPaint método de Control apenas despacha o Paint evento para destinatários de evento registrados.

Se você trabalhou com o exemplo de Como: Desenvolver um controle de formulários do Windows simples, você viu um exemplo de substituir o OnPaint método. O fragmento de código a seguir é tirado desse exemplo.

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

The PaintEventArgs classe contém dados para o Paint evento. Ele tem duas propriedades, sistema autônomo mostrado no código a seguir.

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 é o retângulo para ser pintado e o Graphics propriedade refere-se a um Graphics objeto. As classes a System.Drawing espaço para nome são gerenciado classes que fornecem acesso à funcionalidade do GDI+, a nova biblioteca de elementos gráficos do Windows. The Graphics objeto tem métodos para desenhar pontos, seqüências de caracteres, linhas, arcos, elipses e muitas outras formas.

Um controle chama sua OnPaint método sempre que ele precisa alterar a exibição visual. Esse método em contrapartida dispara o Paint evento.

Consulte também

Conceitos

renderização de um controle Windows Forms

Definir um evento no Windows Forms Controls

Outros recursos

Tratamento e disparada de eventos