Exportar (0) Imprimir
Expandir todo

PaintEventArgs (Clase)

Proporciona datos al evento Paint.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

public class PaintEventArgs : EventArgs, IDisposable
public class PaintEventArgs extends EventArgs implements IDisposable
public class PaintEventArgs extends EventArgs implements IDisposable
No aplicable.

El evento Paint tiene lugar al volver a dibujarse un control. PaintEventArgs especifica la propiedad Graphics que se va a utilizar para pintar el control y la propiedad ClipRectangle en la que se va a pintar.

Para obtener información acerca del modelo de eventos, vea Eventos y delegados.

En el siguiente ejemplo se muestra la forma de controlar el evento Paint y de utilizar la clase PaintEventArgs para dibujar rectángulos en el formulario. Los eventos MouseDown y MouseUp se controlan para determinar el tamaño del rectángulo. En el ejemplo se muestra también el método Invalidate para invalidar el área del rectángulo, lo que hace que se vuelva a dibujar.


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);
    
}


private Rectangle rcDraw;

private float penWidth = 5;

private void Form1_MouseDown(Object sender,
    System.Windows.Forms.MouseEventArgs e)
{
    // Determine the initial rectangle coordinates...
    rcDraw.set_X(e.get_X());
    rcDraw.set_Y(e.get_Y());
} //Form1_MouseDown

private void Form1_MouseUp(Object sender, 
    System.Windows.Forms.MouseEventArgs e)
{
    // Determine the width and height of the rectangle...
    if (e.get_X() < rcDraw.get_X()) {
        rcDraw.set_Width(rcDraw.get_X() - e.get_X());
        rcDraw.set_X(e.get_X());
    }
    else {
        rcDraw.set_Width(e.get_X() - rcDraw.get_X());
    }

    if (e.get_Y() < rcDraw.get_Y()) {
        rcDraw.set_Height(rcDraw.get_Y() - e.get_Y());
        rcDraw.set_Y(e.get_Y());
    }
    else {
        rcDraw.set_Height(e.get_Y() - rcDraw.get_Y());
    }

    // Force a repaint of the region occupied by the rectangle...
    this.Invalidate(rcDraw);
} //Form1_MouseUp

private void Form1_Paint(Object sender,
    System.Windows.Forms.PaintEventArgs e)
{
    // Draw the rectangle...
    e.get_Graphics().DrawRectangle(new Pen(Color.get_Blue(), 
        penWidth), rcDraw);
} //Form1_Paint

// 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();
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",
        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);
}

// 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();

private void Form1_Load(Object sender, System.EventArgs e)
{
    // Dock the PictureBox to the form and set its background to white.
    pictureBox1.set_Dock(DockStyle.Fill);
    pictureBox1.set_BackColor(Color.get_White());

    // Connect the Paint event of the PictureBox to the event handler 
    // method.
    pictureBox1.add_Paint(new System.Windows.Forms.PaintEventHandler(this.
        pictureBox1_Paint));

    // Add the PictureBox control to the Form.
    this.get_Controls().Add(pictureBox1);
} //Form1_Load

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.get_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.get_Blue(), 
        (PointF)new PointF(30, 30));

    // Draw a line in the PictureBox.
    g.DrawLine(System.Drawing.Pens.get_Red(), pictureBox1.get_Left(), 
        pictureBox1.get_Top(), pictureBox1.get_Right(), 
        pictureBox1.get_Bottom());
} //pictureBox1_Paint

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0
Mostrar:
© 2014 Microsoft