Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

DataGridView.RowPostPaint (Evento)

Se produce después de que se dibuje un objeto DataGridViewRow.

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

public event DataGridViewRowPostPaintEventHandler RowPostPaint
/** @event */
public void add_RowPostPaint (DataGridViewRowPostPaintEventHandler value)

/** @event */
public void remove_RowPostPaint (DataGridViewRowPostPaintEventHandler value)

En JScript, se pueden controlar los eventos que define una clase, pero no se pueden definir unos propios.
No aplicable.

Puede controlar este evento en solitario o junto con el evento RowPrePaint para personalizar la apariencia de las filas del control. Puede pintar filas enteras usted, o puede pintar determinadas partes de las filas y utilizar los métodos siguientes de la clase DataGridViewRowPostPaintEventArgs para pintar otras partes:

También puede utilizar la clase VisualStyleRenderer para pintar controles estándar utilizando el tema actual. Para obtener más información, vea Representar controles con estilos visuales. Si está utilizando Visual Studio 2005, también tiene acceso a una biblioteca grande de imágenes estándar que puede utilizar con el control DataGridView.

Biblioteca de imágenes de Visual Studio 2005
Biblioteca de imágenes de Visual Studio 2008
Biblioteca de imágenes de Visual Studio

Para obtener más información sobre la forma de controlar eventos, vea Utilizar eventos.

En el ejemplo de código siguiente se muestra cómo utilizar un controlador para el evento RowPostPaint con el fin de dibujar contenido textual que abarca toda la fila debajo de los valores de celda normales. Este ejemplo forma parte de un ejemplo más extenso que se proporciona en Cómo: Personalizar la apariencia de las filas en el control DataGridView de formularios Windows Forms.

// Paints the content that spans multiple columns and the focus rectangle.
void dataGridView1_RowPostPaint(object sender,
    DataGridViewRowPostPaintEventArgs e)
{
    // Calculate the bounds of the row.
    Rectangle rowBounds = new Rectangle(
        this.dataGridView1.RowHeadersWidth, e.RowBounds.Top,
        this.dataGridView1.Columns.GetColumnsWidth(
            DataGridViewElementStates.Visible) -
        this.dataGridView1.HorizontalScrollingOffset + 1,
        e.RowBounds.Height);

    SolidBrush forebrush = null;
    try
    {
        // Determine the foreground color.
        if ((e.State & DataGridViewElementStates.Selected) ==
            DataGridViewElementStates.Selected)
        {
            forebrush = new SolidBrush(e.InheritedRowStyle.SelectionForeColor);
        }
        else
        {
            forebrush = new SolidBrush(e.InheritedRowStyle.ForeColor);
        }

        // Get the content that spans multiple columns.
        object recipe =
            this.dataGridView1.Rows.SharedRow(e.RowIndex).Cells[2].Value;

        if (recipe != null)
        {
            String text = recipe.ToString();

            // Calculate the bounds for the content that spans multiple 
            // columns, adjusting for the horizontal scrolling position 
            // and the current row height, and displaying only whole
            // lines of text.
            Rectangle textArea = rowBounds;
            textArea.X -= this.dataGridView1.HorizontalScrollingOffset;
            textArea.Width += this.dataGridView1.HorizontalScrollingOffset;
            textArea.Y += rowBounds.Height - e.InheritedRowStyle.Padding.Bottom;
            textArea.Height -= rowBounds.Height -
                e.InheritedRowStyle.Padding.Bottom;
            textArea.Height = (textArea.Height / e.InheritedRowStyle.Font.Height) *
                e.InheritedRowStyle.Font.Height;

            // Calculate the portion of the text area that needs painting.
            RectangleF clip = textArea;
            clip.Width -= this.dataGridView1.RowHeadersWidth + 1 - clip.X;
            clip.X = this.dataGridView1.RowHeadersWidth + 1;
            RectangleF oldClip = e.Graphics.ClipBounds;
            e.Graphics.SetClip(clip);

            // Draw the content that spans multiple columns.
            e.Graphics.DrawString(
                text, e.InheritedRowStyle.Font, forebrush, textArea);

            e.Graphics.SetClip(oldClip);
        }
    }
    finally
    {
        forebrush.Dispose();
    }

    if (this.dataGridView1.CurrentCellAddress.Y == e.RowIndex)
    {
        // Paint the focus rectangle.
        e.DrawFocus(rowBounds, true);
    }
}

Windows 98, Windows 2000 Service Pack 4, Windows Millennium, 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
Mostrar:
© 2014 Microsoft