Override del metodo OnPaintOverriding the OnPaint Method

I passaggi di base per eseguire l'override di qualsiasi evento definito nel .NET Framework.NET Framework sono identici e vengono riepilogate nell'elenco seguente.The basic steps for overriding any event defined in the .NET Framework.NET Framework are identical and are summarized in the following list.

Per eseguire l'override di un evento ereditatoTo override an inherited event

  1. Eseguire l'override protetto On EventName metodo.Override the protected OnEventName method.

  2. Chiamare il On EventName metodo della classe di base da sottoposto a override On EventName (metodo), in modo che i delegati registrati ricevano l'evento.Call the OnEventName method of the base class from the overridden OnEventName method, so that registered delegates receive the event.

Il Paint evento è illustrato in dettaglio di seguito perché è necessario eseguire l'override di tutti i controlli Windows Form di Paint evento che eredita da Control.The Paint event is discussed in detail here because every Windows Forms control must override the Paint event that it inherits from Control. La base Control non sa come deve essere disegnato un controllo derivato di classe e non fornisce alcuna logica di disegno di OnPaint metodo.The base Control class does not know how a derived control needs to be drawn and does not provide any painting logic in the OnPaint method. Il OnPaint metodo Control invia semplicemente il Paint ricevitori di eventi registrati dell'evento.The OnPaint method of Control simply dispatches the Paint event to registered event receivers.

Se tramite l'esempio in cui si è lavorato procedura: sviluppare un controllo Windows Form semplice, è stato illustrato un esempio di override di OnPaint (metodo).If you worked through the sample in How to: Develop a Simple Windows Forms Control, you have seen an example of overriding the OnPaint method. Frammento di codice seguente è tratto dall'esempio.The following code fragment is taken from that sample.

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

Il PaintEventArgs classe contiene i dati per il Paint evento.The PaintEventArgs class contains data for the Paint event. Include due proprietà, come illustrato nel codice seguente.It has two properties, as shown in the following code.

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 il rettangolo da disegnare e il Graphics proprietà fa riferimento a un Graphics oggetto.ClipRectangle is the rectangle to be painted, and the Graphics property refers to a Graphics object. Le classi di System.Drawing dello spazio dei nomi gestiti classi che forniscono accesso alle funzionalità di GDI+GDI+, nella nuova libreria di immagini di Windows.The classes in the System.Drawing namespace are managed classes that provide access to the functionality of GDI+GDI+, the new Windows graphics library. Il Graphics oggetto dispone di metodi per disegnare punti, stringhe, linee, archi, puntini di sospensione e molte altre forme.The Graphics object has methods to draw points, strings, lines, arcs, ellipses, and many other shapes.

Richiama un controllo relativo OnPaint metodo ogni volta che è necessario modificare l'aspetto.A control invokes its OnPaint method whenever it needs to change its visual display. Questo metodo genera a sua volta il Paint evento.This method in turn raises the Paint event.

Vedere ancheSee Also

EventiEvents
Rendering di un controllo di Windows FormRendering a Windows Forms Control
Definizione di un eventoDefining an Event