ToolStripItem.OnPaint(PaintEventArgs) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
引發 Paint 事件。
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)
參數
PaintEventArgs,其中包含事件資料。
範例
下列程式碼範例示範如何覆寫 OnPaint 自訂轉譯的 方法。 此程式碼範例是提供給 類別之較大範例的 ToolStripItem 一部分。
// 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
備註
引發事件會透過委派叫用此事件處理常式。 如需詳細資訊,請參閱 處理和引發事件。
OnPaint 方法也允許衍生類別處理事件,而不用附加委派。 這是在衍生類別中處理事件的慣用技巧。
給繼承者的注意事項
當在衍生類別中覆寫 OnPaint(PaintEventArgs) 時,請確定呼叫基底類別的 OnPaint(PaintEventArgs) 方法,使已註冊的委派能接收到事件。