Compartir a través de


Cómo: Establecer estilos de celda predeterminados para el control DataGridView de formularios Windows Forms

Actualización: noviembre 2007

Con el control DataGridView, puede especificar los estilos de celda predeterminados para todo el control así como para columnas y filas específicas. Estos valores predeterminados realizan el filtro desde el nivel del control al nivel de columna, a continuación a nivel de la fila y, finalmente a nivel de la celda. Si una propiedad DataGridViewCellStyle determinada no se establece en el nivel de la celda, se utiliza la configuración de la propiedad predeterminada en el nivel de la fila. Si la propiedad tampoco se establece en el nivel de la fila, se utiliza la configuración de la columna predeterminada. Finalmente, si la propiedad tampoco se establece en el nivel de la columna, se utiliza la configuración de DataGridView predeterminada. Con esta configuración, puede evitar la duplicación de los valores de propiedades en distintos niveles. En cada nivel, sólo hay que especificar los estilos que difieren de los niveles inmediatamente superiores. Para obtener más información, vea Estilos de celda en el control DataGridView de formularios Windows Forms.

Visual Studio ofrece una amplia compatibilidad para esta tarea.

Para establecer mediante programación los estilos de celdas predeterminados

  1. Establezca las propiedades de DataGridViewCellStyle, recuperadas por medio de la propiedad DataGridView.DefaultCellStyle.

    Me.dataGridView1.DefaultCellStyle.BackColor = Color.Beige
    Me.dataGridView1.DefaultCellStyle.Font = New Font("Tahoma", 12)
    
    this.dataGridView1.DefaultCellStyle.BackColor = Color.Beige;
    this.dataGridView1.DefaultCellStyle.Font = new Font("Tahoma", 12);
    
  2. Cree e inicialice los nuevos objetos DataGridViewCellStyle para su uso por varias filas y columnas.

    Dim highlightCellStyle As New DataGridViewCellStyle
    highlightCellStyle.BackColor = Color.Red
    
    Dim currencyCellStyle As New DataGridViewCellStyle
    currencyCellStyle.Format = "C"
    currencyCellStyle.ForeColor = Color.Green
    
    DataGridViewCellStyle highlightCellStyle = new DataGridViewCellStyle();
    highlightCellStyle.BackColor = Color.Red;
    
    DataGridViewCellStyle currencyCellStyle = new DataGridViewCellStyle();
    currencyCellStyle.Format = "C";
    currencyCellStyle.ForeColor = Color.Green;
    
  3. Establezca la propiedad DefaultCellStyle de filas y columnas determinadas.

    With Me.dataGridView1
        .Rows(3).DefaultCellStyle = highlightCellStyle
        .Rows(8).DefaultCellStyle = highlightCellStyle
        .Columns("UnitPrice").DefaultCellStyle = currencyCellStyle
        .Columns("TotalPrice").DefaultCellStyle = currencyCellStyle
    End With
    
    this.dataGridView1.Rows[3].DefaultCellStyle = highlightCellStyle;
    this.dataGridView1.Rows[8].DefaultCellStyle = highlightCellStyle;
    this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle =
        currencyCellStyle;
    this.dataGridView1.Columns["TotalPrice"].DefaultCellStyle =
        currencyCellStyle;
    

Ejemplo

Private Sub SetDefaultCellStyles()

    Dim highlightCellStyle As New DataGridViewCellStyle
    highlightCellStyle.BackColor = Color.Red

    Dim currencyCellStyle As New DataGridViewCellStyle
    currencyCellStyle.Format = "C"
    currencyCellStyle.ForeColor = Color.Green

    With Me.dataGridView1
        .DefaultCellStyle.BackColor = Color.Beige
        .DefaultCellStyle.Font = New Font("Tahoma", 12)
        .Rows(3).DefaultCellStyle = highlightCellStyle
        .Rows(8).DefaultCellStyle = highlightCellStyle
        .Columns("UnitPrice").DefaultCellStyle = currencyCellStyle
        .Columns("TotalPrice").DefaultCellStyle = currencyCellStyle
    End With

End Sub
private void SetDefaultCellStyles()
{
    this.dataGridView1.DefaultCellStyle.BackColor = Color.Beige;
    this.dataGridView1.DefaultCellStyle.Font = new Font("Tahoma", 12);

    DataGridViewCellStyle highlightCellStyle = new DataGridViewCellStyle();
    highlightCellStyle.BackColor = Color.Red;

    DataGridViewCellStyle currencyCellStyle = new DataGridViewCellStyle();
    currencyCellStyle.Format = "C";
    currencyCellStyle.ForeColor = Color.Green;

    this.dataGridView1.Rows[3].DefaultCellStyle = highlightCellStyle;
    this.dataGridView1.Rows[8].DefaultCellStyle = highlightCellStyle;
    this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle =
        currencyCellStyle;
    this.dataGridView1.Columns["TotalPrice"].DefaultCellStyle =
        currencyCellStyle;
}

Compilar el código

Para este ejemplo se necesita:

Programación eficaz

Para conseguir una máxima escalabilidad al trabajar con conjuntos de datos muy grandes, se deben compartir objetos DataGridViewCellStyle entre las distintas filas, columnas o celdas que utilicen los mismos estilos, en lugar de establecer por separado las propiedades de estilo para elementos individuales. Además, debería crear filas compartidas y tener acceso a ellas mediante la propiedad DataGridViewRowCollection.SharedRow. Para obtener más información, vea Procedimientos recomendados para ajustar la escala del control DataGridView en formularios Windows Forms.

Vea también

Tareas

Cómo: Establecer estilos de fila alternos para el control DataGridView de formularios Windows Forms

Conceptos

Estilos de celda en el control DataGridView de formularios Windows Forms

Procedimientos recomendados para ajustar la escala del control DataGridView en formularios Windows Forms

Referencia

DataGridView

DataGridViewCellStyle

DataGridView.DefaultCellStyle

DataGridViewBand.DefaultCellStyle

Otros recursos

Estilo y formato básicos del control DataGridView en formularios Windows Forms