Cómo: Dar formato al control DataGrid de formularios Windows Forms
Nota
Aunque el control DataGridView reemplaza y agrega funcionalidad al control DataGrid, este control DataGrid se conserva a efectos de compatibilidad con versiones anteriores y, en su caso, de uso futuro. 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
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.).
Color de fondo de las filas pares de la cuadrícula (filas 0, 2, 4, 6 y etc.).
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.
Estilo de borde de la cuadrícula, uno de los valores de la enumeración BorderStyle.
Color de fondo del título de la ventana de la cuadrícula que aparece inmediatamente encima de la cuadrícula.
Fuente del título de la parte superior de la cuadrícula.
Color de fondo del título de la ventana de la cuadrícula.
Fuente utilizada para mostrar el texto en la cuadrícula.
Color de la fuente que muestran los datos de las filas de la cuadrícula de datos.
Color de las líneas de la cuadrícula de datos.
Estilo de las líneas que separan las celdas de la cuadrícula, uno de los valores de la enumeración DataGridLineStyle.
Color de fondo de los encabezados de fila y columna.
Fuente utilizada para los encabezados de columna.
Color de primer plano 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).
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.
En una tabla secundaria, éste es el color de fondo de las filas primaria.
En una tabla secundaria, éste es el color de primer plano de las filas primaria.
Determina si los nombres de tabla y columna se muestran en la fila primaria, por medio de la enumeración DataGridParentRowsLabelStyle.
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.
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.
Ancho de los encabezados de fila de la cuadrícula.
Cuando se selecciona una fila o celda, éste es el color de fondo.
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
Cree un estilo de tabla nuevo y defina sus propiedades.
Cree un estilo de columna nuevo y defina sus propiedades.
Agregue el estilo de columna a la colección de estilos de columna del estilo de tabla.
Agregue el estilo de tabla a la colección de estilos de tabla de la cuadrícula de datos.
En el ejemplo siguiente, cree una instancia de un nuevo objeto DataGridTableStyle y establezca su propiedad MappingName.
Cree una instancia nueva de un objeto GridColumnStyle y defina su propiedad MappingName (y otras propiedades de diseño y presentación).
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