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) メソッドを呼び出してください。
適用対象
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET