Compartir a través de


Cómo: Dar formato al control DataGrid de formularios Windows Forms

Actualización: noviembre 2007

Nota:

Aunque el control DataGridView viene a reemplazar y a agregar funcionalidad al control DataGrid, éste se conserva a efectos de compatibilidad con versiones anteriores y uso futuro, según sea el caso. Para obtener más información, vea Diferencias entre los controles DataGridView y DataGrid de formularios Windows Forms.

Aplicar diferentes colores a diversas partes de un control DataGrid puede facilitar la lectura e interpretación de la información que contiene. Se puede aplicar color a filas y columnas. Las filas y columnas también se pueden ocultar y mostrar a discreción.

Hay tres aspectos básicos del formato del control DataGrid. Puede definir propiedades para establecer un estilo predeterminado con el que mostrar los datos. Partiendo de esta base, puede personalizar el modo en que se muestran determinadas tablas en tiempo de ejecución. Finalmente, puede modificar las columnas que se muestran en la cuadrícula de datos, así como los colores y otros aspectos del formato que se muestran.

Como paso inicial para dar formato a una cuadrícula de datos, se pueden establecer las propiedades del propio control DataGrid. Estas opciones de color y formato forman una base a partir de la cual puede realizar cambios dependiendo de las tablas de datos y columnas mostradas.

Para establecer un estilo predeterminado para el control DataGrid

  • Establezca las siguientes propiedades según corresponda:

    Propiedad

    Descripción

    AlternatingBackColor

    La propiedad BackColor define el color de las filas pares de la cuadrícula. Cuando se define la propiedad AlternatingBackColor en un color diferente, las filas alternas toman este nuevo color (filas 1, 3, 5, etc.).

    BackColor

    Color de fondo de las filas pares de la cuadrícula (filas 0, 2, 4, 6 y etc.).

    BackgroundColor

    Mientras que las propiedades BackColor y AlternatingBackColor determinan el color de las filas de la cuadrícula, la propiedad BackgroundColor determina el color del área que no corresponde a las filas, que sólo está visible cuando la cuadrícula se desplaza hasta el final, o si la cuadrícula contiene sólo unas pocas filas.

    BorderStyle

    Estilo de borde de la cuadrícula, uno de los valores de la enumeración BorderStyle.

    CaptionBackColor

    Color de fondo del título de la ventana de la cuadrícula que aparece inmediatamente encima de la cuadrícula.

    CaptionFont

    Fuente del título de la parte superior de la cuadrícula.

    CaptionForeColor

    Color de fondo del título de la ventana de la cuadrícula.

    Font

    Fuente utilizada para mostrar el texto en la cuadrícula.

    ForeColor

    Color de la fuente que muestran los datos de las filas de la cuadrícula de datos.

    GridLineColor

    Color de las líneas de la cuadrícula de datos.

    GridLineStyle

    Estilo de las líneas que separan las celdas de la cuadrícula, uno de los valores de la enumeración DataGridLineStyle.

    HeaderBackColor

    Color de fondo de los encabezados de fila y columna.

    HeaderFont

    Fuente utilizada para los encabezados de columna.

    HeaderForeColor

    Color de fondo de los encabezados de columna de la cuadrícula, incluido el texto del encabezado de columna y los glifos más y menos (para expandir las filas cuando se muestren varias tablas relacionadas).

    LinkColor

    Color del texto de todos los vínculos de la cuadrícula de datos, incluidos los vínculos a tablas secundarias, el nombre de la relación, etc.

    ParentRowsBackColor

    En una tabla secundaria, éste es el color de fondo de las filas primarias.

    ParentRowsForeColor

    En una tabla secundaria, éste es el color de primer plano de las filas primarias.

    ParentRowsLabelStyle

    Determina si los nombres de tabla y columna se muestran en la fila primaria, por medio de la enumeración DataGridParentRowsLabelStyle.

    PreferredColumnWidth

    Ancho predeterminado (en píxeles) de las columnas de la cuadrícula. Defina esta propiedad antes de restablecer las propiedades DataSource y DataMember (por separado o con el método SetDataBinding), o la propiedad no tendrá efecto.

    No se puede definir la propiedad con un valor inferior a 0.

    PreferredRowHeight

    Alto de fila (en píxeles) de las filas de la cuadrícula. Defina esta propiedad antes de restablecer las propiedades DataSource y DataMember (por separado o con el método SetDataBinding), o la propiedad no tendrá efecto.

    No se puede definir la propiedad con un valor inferior a 0.

    RowHeaderWidth

    Ancho de los encabezados de fila de la cuadrícula.

    SelectionBackColor

    Cuando se selecciona una fila o celda, éste es el color de fondo.

    SelectionForeColor

    Cuando se selecciona una fila o celda, éste es el color de primer plano.

    Nota:

    Tenga en cuenta que, al personalizar los colores de los controles, es posible que el control quede inaccesible, debido a una elección de color deficiente (por ejemplo, rojo y verde). Utilice los colores disponibles en la paleta Colores del sistema para evitar este problema.

    Los procedimientos siguientes suponen que el formulario tiene un control DataGrid enlazado a una tabla de datos. Para obtener más información, vea Enlazar el control DataGrid de formularios Windows Forms a un origen de datos.

Para definir el estilo de tabla y columna de una tabla de datos mediante programación

  1. Cree un estilo de tabla nuevo y defina sus propiedades.

  2. Cree un estilo de columna nuevo y defina sus propiedades.

  3. Agregue el estilo de columna a la colección de estilos de columna del estilo de tabla.

  4. Agregue el estilo de tabla a la colección de estilos de tabla de la cuadrícula de datos.

  5. En el ejemplo siguiente, cree una instancia de un nuevo objeto DataGridTableStyle y establezca su propiedad MappingName.

  6. Cree una instancia nueva de un objeto GridColumnStyle y defina su propiedad MappingName (y otras propiedades de diseño y presentación).

  7. Repita los pasos 2 a 6 para cada estilo de columna que desee crear.

    El ejemplo siguiente muestra cómo se crea un objeto DataGridTextBoxColumn, porque se va a mostrar un nombre en la columna. De manera adicional, agregue el estilo de columna a la colección GridColumnStylesCollection del estilo de tabla y agregue el estilo de tabla a la colección GridTableStylesCollection de la cuadrícula de datos.

    Private Sub CreateAuthorFirstNameColumn()
       ' Add a GridTableStyle and set the MappingName 
       ' to the name of the DataTable.
       Dim TSAuthors As New DataGridTableStyle()
       TSAuthors.MappingName = "Authors"
    
       ' Add a GridColumnStyle and set the MappingName 
       ' to the name of a DataColumn in the DataTable. 
       ' Set the HeaderText and Width properties. 
       Dim TCFirstName As New DataGridTextBoxColumn()
       TCFirstName.MappingName = "AV_FName"
       TCFirstName.HeaderText = "First Name"
       TCFirstName.Width = 75
       TSAuthors.GridColumnStyles.Add(TCFirstName)
    
       ' Add the DataGridTableStyle instance to 
       ' the GridTableStylesCollection. 
       myDataGrid.TableStyles.Add(TSAuthors)
    End Sub 
    
    private void addCustomDataTableStyle()
    {
       // Add a GridTableStyle and set the MappingName 
       // to the name of the DataTable.
       DataGridTableStyle TSAuthors = new DataGridTableStyle();
       TSAuthors.MappingName = "Authors";
    
       // Add a GridColumnStyle and set the MappingName 
       // to the name of a DataColumn in the DataTable. 
       // Set the HeaderText and Width properties. 
       DataGridColumnStyle TCFirstName = new DataGridTextBoxColumn();
       TCFirstName.MappingName = " AV_FName";
       TCFirstName.HeaderText = "First Name";
       TCFirstName.Width = 75;
       TSAuthors.GridColumnStyles.Add(TCFirstName);
    
       // Add the DataGridTableStyle instance to 
       // the GridTableStylesCollection. 
       dataGrid1.TableStyles.Add(TSAuthors);
    }
    
    private:
       void addCustomDataTableStyle()
       {
          // Add a GridTableStyle and set the MappingName 
          // to the name of the DataTable.
          DataGridTableStyle^ TSAuthors = new DataGridTableStyle();
          TSAuthors->MappingName = "Authors";
    
          // Add a GridColumnStyle and set the MappingName 
          // to the name of a DataColumn in the DataTable. 
          // Set the HeaderText and Width properties. 
          DataGridColumnStyle^ TCFirstName = gcnew DataGridTextBoxColumn();
          TCFirstName->MappingName = "AV_FName";
          TCFirstName->HeaderText = "First Name";
          TCFirstName->Width = 75;
          TSAuthors->GridColumnStyles->Add(TCFirstName);
    
          // Add the DataGridTableStyle instance to 
          // the GridTableStylesCollection. 
          dataGrid1->TableStyles->Add(TSAuthors);
       }
    

Vea también

Tareas

Cómo: Eliminar u ocultar columnas del control DataGrid de formularios Windows Forms

Referencia

GridTableStylesCollection

GridColumnStylesCollection

DataGrid

Otros recursos

DataGrid (Control, formularios Windows Forms)