Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

DataGridView.CellPainting (Evento)

Se produce cuando hay que dibujar una celda.

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

public event DataGridViewCellPaintingEventHandler CellPainting
/** @event */
public void add_CellPainting (DataGridViewCellPaintingEventHandler value)

/** @event */
public void remove_CellPainting (DataGridViewCellPaintingEventHandler 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 para personalizar la apariencia de las celdas del control. Puede pintar celdas enteras usted, o puede pintar determinadas partes de las celdas y utilizar los métodos DataGridViewCellPaintingEventArgs.PaintBackground o DataGridViewCellPaintingEventArgs.PaintContent 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 controlar este evento no debe tener acceso a la celda directamente, sino usar los parámetros del controlador de eventos.

Para obtener más información sobre el control de eventos, vea Utilizar eventos.

En el ejemplo de código siguiente se ilustra cómo utilizar este evento para personalizar la apariencia de todas las celdas de una columna específica.

Este código forma parte de un ejemplo más extenso proporcionado en Cómo: Personalizar la apariencia de las celdas en el control DataGridView de formularios Windows Forms.

private void dataGridView1_CellPainting(object sender,
System.Windows.Forms.DataGridViewCellPaintingEventArgs e)
{
    if (this.dataGridView1.Columns["ContactName"].Index ==
        e.ColumnIndex && e.RowIndex >= 0)
    {
        Rectangle newRect = new Rectangle(e.CellBounds.X + 1,
            e.CellBounds.Y + 1, e.CellBounds.Width - 4,
            e.CellBounds.Height - 4);

        using (
            Brush gridBrush = new SolidBrush(this.dataGridView1.GridColor),
            backColorBrush = new SolidBrush(e.CellStyle.BackColor))
        {
            using (Pen gridLinePen = new Pen(gridBrush))
            {
                // Erase the cell.
                e.Graphics.FillRectangle(backColorBrush, e.CellBounds);

                // Draw the grid lines (only the right and bottom lines;
                // DataGridView takes care of the others).
                e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left,
                    e.CellBounds.Bottom - 1, e.CellBounds.Right - 1,
                    e.CellBounds.Bottom - 1);
                e.Graphics.DrawLine(gridLinePen, e.CellBounds.Right - 1,
                    e.CellBounds.Top, e.CellBounds.Right - 1,
                    e.CellBounds.Bottom);

                // Draw the inset highlight box.
                e.Graphics.DrawRectangle(Pens.Blue, newRect);

                // Draw the text content of the cell, ignoring alignment.
                if (e.Value != null)
                {
                    e.Graphics.DrawString((String)e.Value, e.CellStyle.Font,
                        Brushes.Crimson, e.CellBounds.X + 2,
                        e.CellBounds.Y + 2, StringFormat.GenericDefault);
                }
                e.Handled = 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