Compartir a través de


Cómo establecer estilos predeterminados de celda para el control DataGridView de Windows Forms

Con el DataGridView control , puede especificar estilos de celda predeterminados para todo el control y para columnas y filas específicas. Estos valores predeterminados se aplican desde el nivel de control hasta el nivel de columna, luego al nivel de fila, y finalmente al nivel de celda. Si una propiedad determinada DataGridViewCellStyle no se establece en el nivel de celda, se usa la configuración de la propiedad predeterminada en el nivel de fila. Si la propiedad tampoco se establece en el nivel de fila, se usa la configuración de columna predeterminada. Por último, si la propiedad tampoco se establece en el nivel de columna, se usa la configuración predeterminada DataGridView . Con esta configuración, puede evitar tener que duplicar la configuración de la propiedad en varios niveles. En cada nivel, simplemente especifique los estilos que difieren de los niveles por encima de él. Para obtener más información, vea Estilos de celda en el control DataGridView de Windows Forms.

Hay una amplia compatibilidad con esta tarea en Visual Studio. Vea también Cómo: Establecer estilos predeterminados de celda y formatos de datos para el control DataGridView de Windows Forms utilizando el diseñador.

Para establecer los estilos de celda predeterminados mediante programación

  1. Establezca las propiedades del objeto recuperado a través de la propiedad DataGridViewCellStyle de DataGridView.DefaultCellStyle.

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

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

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

Ejemplo

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

Compilar el código

Este ejemplo requiere:

Programación sólida

Para lograr la máxima escalabilidad al trabajar con conjuntos de datos muy grandes, debe compartir DataGridViewCellStyle objetos entre varias filas, columnas o celdas que usan los mismos estilos, en lugar de establecer las propiedades de estilo para elementos individuales por separado. Además, debe crear filas compartidas y acceder a ellas mediante la DataGridViewRowCollection.SharedRow propiedad . Para obtener más información, vea Procedimientos recomendados para escalar el control DataGridView de formularios Windows Forms.

Consulte también