PaintEventArgs クラス
Paint イベントのデータを提供します。
この型のすべてのメンバの一覧については、PaintEventArgs メンバ を参照してください。
System.Object
System.EventArgs
System.Windows.Forms.PaintEventArgs
Public Class PaintEventArgs
Inherits EventArgs
Implements IDisposable
[C#]
public class PaintEventArgs : EventArgs, IDisposable
[C++]
public __gc class PaintEventArgs : public EventArgs, IDisposable
[JScript]
public class PaintEventArgs extends EventArgs implements
IDisposable
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
コントロールが再描画されると Paint イベントが発生します。 PaintEventArgs は、コントロールの描画に使用する Graphics と、コントロールの描画先の ClipRectangle を指定します。
イベント モデルの詳細については、「 イベントとデリゲート 」を参照してください。
使用例
[Visual Basic, C#, C++] Paint イベントを処理し、 PaintEventArgs クラスを使用してフォームに四角形を描画する例を次に示します。四角形のサイズは、 MouseDown イベントと MouseUp イベントを処理して判断します。この例では、 Invalidate メソッドを使用して四角形の領域を無効にし、再描画させる方法も示します。
Dim RcDraw As Rectangle
Dim PenWidth As Integer = 5
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
' Determine the initial rectangle coordinates...
RcDraw.X = e.X
RcDraw.Y = e.Y
End Sub
Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp
' Determine the width and height of the rectangle...
If e.X < RcDraw.X Then
RcDraw.Width = RcDraw.X - e.X
RcDraw.X = e.X
Else
RcDraw.Width = e.X - RcDraw.X
End If
If e.Y < RcDraw.Y Then
RcDraw.Height = RcDraw.Y - e.Y
RcDraw.Y = e.Y
Else
RcDraw.Height = e.Y - RcDraw.Y
End If
' Force a repaint of the region occupied by the rectangle...
Me.Invalidate(RcDraw)
End Sub
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
' Draw the rectangle...
e.Graphics.DrawRectangle(New Pen(Color.Blue, PenWidth), RcDraw)
End Sub
[C#]
private Rectangle RcDraw;
private float PenWidth = 5;
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
// Determine the initial rectangle coordinates...
RcDraw.X = e.X;
RcDraw.Y = e.Y;
}
private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
// Determine the width and height of the rectangle...
if(e.X < RcDraw.X)
{
RcDraw.Width = RcDraw.X - e.X;
RcDraw.X = e.X;
}
else
{
RcDraw.Width = e.X - RcDraw.X;
}
if(e.Y < RcDraw.Y)
{
RcDraw.Height = RcDraw.Y - e.Y;
RcDraw.Y = e.Y;
}
else
{
RcDraw.Height = e.Y - RcDraw.Y;
}
// Force a repaint of the region occupied by the rectangle...
this.Invalidate(RcDraw);
}
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
// Draw the rectangle...
e.Graphics.DrawRectangle(new Pen(Color.Blue, PenWidth), RcDraw);
}
[C++]
private:
Rectangle RcDraw;
void Form1_MouseDown(Object* /*sender*/, System::Windows::Forms::MouseEventArgs* e)
{
// Determine the initial rectangle coordinates...
RcDraw.X = e->X;
RcDraw.Y = e->Y;
}
void Form1_MouseUp(Object* /*sender*/, System::Windows::Forms::MouseEventArgs* e)
{
// Determine the width and height of the rectangle...
if(e->X < RcDraw.X)
{
RcDraw.Width = RcDraw.X - e->X;
RcDraw.X = e->X;
}
else
{
RcDraw.Width = e->X - RcDraw.X;
}
if(e->Y < RcDraw.Y)
{
RcDraw.Height = RcDraw.Y - e->Y;
RcDraw.Y = e->Y;
}
else
{
RcDraw.Height = e->Y - RcDraw.Y;
}
// Force a repaint of the region occupied by the rectangle...
this->Invalidate(RcDraw);
}
void Form1_Paint(Object* /*sender*/, System::Windows::Forms::PaintEventArgs* e)
{
// Draw the rectangle...
float PenWidth = 5;
e->Graphics->DrawRectangle(new Pen(Color::Blue, PenWidth), RcDraw);
}
[Visual Basic]
' This example creates a PictureBox control on the form and draws to it.
' This example assumes that the Form_Load event handling method is connected
' to the Load event of the form.
Private pictureBox1 As New PictureBox()
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Dock the PictureBox to the form and set its background to white.
pictureBox1.Dock = DockStyle.Fill
pictureBox1.BackColor = Color.White
' Connect the Paint event of the PictureBox to the event handling method.
AddHandler pictureBox1.Paint, AddressOf Me.pictureBox1_Paint
' Add the PictureBox control to the Form.
Me.Controls.Add(pictureBox1)
End Sub 'Form1_Load
Private Sub pictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)
' Create a local version of the graphics object for the PictureBox.
Dim g As Graphics = e.Graphics
' Draw a string on the PictureBox.
g.DrawString("This is a diagonal line drawn on the control", _
New Font("Arial", 10), Brushes.Red, New PointF(30.0F, 30.0F))
' Draw a line in the PictureBox.
g.DrawLine(System.Drawing.Pens.Red, pictureBox1.Left, _
pictureBox1.Top, pictureBox1.Right, pictureBox1.Bottom)
End Sub 'pictureBox1_Paint
[C#]
// This example creates a PictureBox control on the form and draws to it.
// This example assumes that the Form_Load event handling method is
// connected to the Load event of the form.
private PictureBox pictureBox1 = new PictureBox();
private void Form1_Load(object sender, System.EventArgs e)
{
// Dock the PictureBox to the form and set its background to white.
pictureBox1.Dock = DockStyle.Fill;
pictureBox1.BackColor = Color.White;
// Connect the Paint event of the PictureBox to the event handling method.
pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint);
// Add the PictureBox control to the Form.
this.Controls.Add(pictureBox1);
}
private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
// Create a local version of the graphics object for the PictureBox.
Graphics g = e.Graphics;
// Draw a string on the PictureBox.
g.DrawString("This is a diagonal line drawn on the control",
new Font("Arial",10), System.Drawing.Brushes.Blue, new Point(30,30));
// Draw a line in the PictureBox.
g.DrawLine(System.Drawing.Pens.Red, pictureBox1.Left, pictureBox1.Top,
pictureBox1.Right, pictureBox1.Bottom);
}
[C++]
// This example creates a PictureBox control on the form and draws to it.
// This example assumes that the Form_Load event handling method is
// connected to the Load event of the form.
private:
PictureBox* pictureBox1;
void Form1_Load(Object* /*sender*/, System::EventArgs* /*e*/)
{
pictureBox1 = new PictureBox();
// Dock the PictureBox to the form and set its background to white.
pictureBox1->Dock = DockStyle::Fill;
pictureBox1->BackColor = Color::White;
// Connect the Paint event of the PictureBox to the event handling method.
pictureBox1->Paint += new System::Windows::Forms::PaintEventHandler(this, &Form1::pictureBox1_Paint);
// Add the PictureBox control to the Form.
this->Controls->Add(pictureBox1);
}
void pictureBox1_Paint(Object* /*sender*/, System::Windows::Forms::PaintEventArgs* e)
{
// Create a local version of the graphics object for the PictureBox.
Graphics* g = e->Graphics;
// Draw a string on the PictureBox.
g->DrawString(S"This is a diagonal line drawn on the control",
new System::Drawing::Font(S"Arial",10), System::Drawing::Brushes::Blue, Point(30,30));
// Draw a line in the PictureBox.
g->DrawLine(System::Drawing::Pens::Red, pictureBox1->Left, pictureBox1->Top,
pictureBox1->Right, pictureBox1->Bottom);
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Windows.Forms
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: System.Windows.Forms (System.Windows.Forms.dll 内)
参照
PaintEventArgs メンバ | System.Windows.Forms 名前空間 | Graphics | Rectangle