閱讀英文

共用方式為


PaintEventArgs 類別

定義

提供 Paint 事件的資料。

C#
public class PaintEventArgs : EventArgs, IDisposable
C#
public class PaintEventArgs : EventArgs, IDisposable, System.Drawing.IDeviceContext
繼承
PaintEventArgs
衍生
實作

範例

下列範例示範如何處理 Paint 事件,並使用 PaintEventArgs 類別在表單上繪製矩形。 MouseDownMouseUp 事件會進行處理,以判斷矩形的大小。 此範例也會示範 Invalidate 方法,使矩形的區域失效,使其重新繪製。

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#
// This example creates a PictureBox control on the form and draws to it.
// This example assumes that the Form_Load event handler method is
// connected to the Load event of the form.

private PictureBox pictureBox1 = new PictureBox();
// Cache font instead of recreating font objects each time we paint.
private Font fnt = new Font("Arial",10);
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 handler 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",
        fnt, 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);
}

備註

重新 Paint 繪製控制項時,就會發生此事件。 PaintEventArgs指定要 Graphics 用來繪製控制項的 ,以及 ClipRectangle 要在其中繪製的 。

如需事件模型的相關資訊,請參閱 處理和引發事件

建構函式

PaintEventArgs(Graphics, Rectangle)

使用指定的圖形及裁剪 (Clipping) 方框來初始化 PaintEventArgs 類別的新執行個體。

屬性

ClipRectangle

取得要繪製的矩形。

Graphics

取得用來繪製的圖形。

方法

Dispose()

釋放 PaintEventArgs 所使用的所有資源。

Dispose(Boolean)

釋放 PaintEventArgs 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Finalize()

允許物件在記憶體回收進行回收之前,嘗試釋放資源並執行其他清除作業。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

明確介面實作

IDeviceContext.GetHdc()

傳回 Windows 裝置內容的控制代碼。

IDeviceContext.ReleaseHdc()

釋放 Windows 裝置內容的控制代碼。

適用於

產品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

另請參閱