ToolStripItem.OnPaint(PaintEventArgs) ToolStripItem.OnPaint(PaintEventArgs) ToolStripItem.OnPaint(PaintEventArgs) ToolStripItem.OnPaint(PaintEventArgs) Method

Definizione

Genera l'evento Paint.Raises the Paint event.

protected:
 virtual void OnPaint(System::Windows::Forms::PaintEventArgs ^ e);
protected virtual void OnPaint (System.Windows.Forms.PaintEventArgs e);
abstract member OnPaint : System.Windows.Forms.PaintEventArgs -> unit
override this.OnPaint : System.Windows.Forms.PaintEventArgs -> unit
Protected Overridable Sub OnPaint (e As PaintEventArgs)

Parametri

e
PaintEventArgs PaintEventArgs PaintEventArgs PaintEventArgs

Oggetto PaintEventArgs che contiene i dati dell'evento.A PaintEventArgs that contains the event data.

Esempi

Nell'esempio di codice riportato di seguito viene illustrato OnPaint come eseguire l'override del metodo per il rendering personalizzato.The following code example demonstrates how to override the OnPaint method for custom rendering. Questo esempio di codice fa parte di un esempio più ampio fornito ToolStripItem per la classe.This code example is part of a larger example provided for the ToolStripItem class.

// This method defines the painting behavior of the control.
// It performs the following operations:
//
// Computes the layout of the item's image and text.
// Draws the item's background image.
// Draws the item's image.
// Draws the item's text.
//
// Drawing operations are implemented in the 
// RolloverItemRenderer class.
protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);

    if (this.Owner != null)
    {
        // Find the dimensions of the image and the text 
        // areas of the item. 
        this.ComputeImageAndTextLayout();

        // Draw the background. This includes drawing a highlighted 
        // border when the mouse is in the client area.
        ToolStripItemRenderEventArgs ea = new ToolStripItemRenderEventArgs(
             e.Graphics,
             this);
        this.Owner.Renderer.DrawItemBackground(ea);

        // Draw the item's image. 
        ToolStripItemImageRenderEventArgs irea =
            new ToolStripItemImageRenderEventArgs(
            e.Graphics,
            this,
            imageRect );
        this.Owner.Renderer.DrawItemImage(irea);

        // If the item is on a drop-down, give its
        // text a different highlighted color.
        Color highlightColor = 
            this.IsOnDropDown ?
            Color.Salmon : SystemColors.ControlLightLight;

        // Draw the text, and highlight it if the 
        // the rollover state is true.
        ToolStripItemTextRenderEventArgs rea =
            new ToolStripItemTextRenderEventArgs(
            e.Graphics,
            this,
            base.Text,
            textRect,
            this.rolloverValue ? highlightColor : base.ForeColor,
            base.Font,
            base.TextAlign);
        this.Owner.Renderer.DrawItemText(rea);
    }
}
' This method defines the painting behavior of the control.
' It performs the following operations:
'
' Computes the layout of the item's image and text.
' Draws the item's background image.
' Draws the item's image.
' Draws the item's text.
'
' Drawing operations are implemented in the 
' RolloverItemRenderer class.
Protected Overrides Sub OnPaint(e As PaintEventArgs)
   MyBase.OnPaint(e)
   
   If (Me.Owner IsNot Nothing) Then
      ' Find the dimensions of the image and the text 
      ' areas of the item. 
      Me.ComputeImageAndTextLayout()
      
      ' Draw the background. This includes drawing a highlighted 
      ' border when the mouse is in the client area.
      Dim ea As New ToolStripItemRenderEventArgs(e.Graphics, Me)
      Me.Owner.Renderer.DrawItemBackground(ea)
      
      ' Draw the item's image. 
      Dim irea As New ToolStripItemImageRenderEventArgs(e.Graphics, Me, imageRect)
      Me.Owner.Renderer.DrawItemImage(irea)
      
      ' If the item is on a drop-down, give its
      ' text a different highlighted color.
         Dim highlightColor As Color = CType(IIf(Me.IsOnDropDown, Color.Salmon, SystemColors.ControlLightLight), Color)
      
      ' Draw the text, and highlight it if the 
      ' the rollover state is true.
         Dim rea As New ToolStripItemTextRenderEventArgs( _
            e.Graphics, _
            Me, _
            MyBase.Text, _
            textRect, _
            CType(IIf(Me.rolloverValue, highlightColor, MyBase.ForeColor), Color), _
            MyBase.Font, _
            MyBase.TextAlign)
      Me.Owner.Renderer.DrawItemText(rea)
   End If
 End Sub

Commenti

Quando viene generato un evento, il gestore dell'evento viene richiamato tramite un delegato.Raising an event invokes the event handler through a delegate. Per altre informazioni, vedere la gestione e generazione di eventi.For more information, see Handling and Raising Events.

Il metodo OnPaint consente inoltre alle classi derivate di gestire l'evento senza associare un delegato.The OnPaint method also allows derived classes to handle the event without attaching a delegate. È la tecnica consigliata per la gestione dell'evento in una classe derivata.This is the preferred technique for handling the event in a derived class.

Note per gli eredi

Quando si esegue l'override di OnPaint(PaintEventArgs) in una classe derivata, verificare di chiamare il metodo OnPaint(PaintEventArgs) della classe di base in modo che i delegati registrati ricevano l'evento.When overriding OnPaint(PaintEventArgs) in a derived class, be sure to call the base class's OnPaint(PaintEventArgs) method so that registered delegates receive the event.

Si applica a