Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
El DataGridView control reemplaza y agrega funcionalidad al DataGrid control; sin embargo, el DataGrid control se conserva tanto para la compatibilidad con versiones anteriores como para el uso futuro, si lo desea. Para obtener más información, consulte Diferencias entre los controles DataGridView y DataGrid de Windows Forms.
El control Windows Forms DataGrid muestra datos en una serie de filas y columnas. El caso más sencillo es cuando la cuadrícula está enlazada a un origen de datos con una sola tabla que no contiene relaciones. En ese caso, los datos aparecen en filas y columnas simples, como en una hoja de cálculo. Para obtener más información sobre cómo enlazar datos a otros controles, vea Enlace de datos y Formularios Windows Forms.
Si el DataGrid está enlazado a datos con varias tablas relacionadas y la navegación está habilitada en la cuadrícula, esta mostrará desplegables en cada fila. Con un expansador, el usuario puede pasar de una tabla primaria a una tabla secundaria. Al hacer clic en un nodo se muestra la tabla secundaria y al hacer clic en un botón Atrás se muestra la tabla primaria original. De esta manera, la cuadrícula muestra las relaciones jerárquicas entre tablas.
En la captura de pantalla siguiente se muestra un dataGrid enlazado a datos con varias tablas:
DataGrid puede proporcionar una interfaz de usuario para un conjunto de datos, navegación entre tablas relacionadas y funcionalidades de edición y formato enriquecido.
La visualización y manipulación de datos son funciones independientes: el control controla la interfaz de usuario, mientras que las actualizaciones de datos se controlan mediante la arquitectura de enlace de datos de Windows Forms y los proveedores de datos de .NET Framework. Por lo tanto, varios controles enlazados al mismo origen de datos permanecerán sincronizados.
Nota:
Si está familiarizado con el control DataGrid en Visual Basic 6.0, encontrará algunas diferencias significativas en el control de Windows Forms DataGrid .
Cuando la cuadrícula está enlazada a DataSet, las columnas y filas se crean, se formatean y se rellenan automáticamente. Para obtener más información, consulte Vinculación de datos y Windows Forms. Después de la generación del DataGrid control, puede agregar, eliminar, reorganizar y dar formato a columnas y filas según sus necesidades.
Vinculación de datos al control
Para que el DataGrid control funcione, debe enlazarse a un origen de datos mediante las DataSource propiedades y DataMember en tiempo de diseño o el SetDataBinding método en tiempo de ejecución. Este enlace apunta DataGrid a un objeto de origen de datos instanciado, como un DataSet o un DataTable. El DataGrid control muestra los resultados de las acciones que se realizan en los datos. La mayoría de las acciones específicas de los datos no se realizan a través de DataGrid , sino a través del origen de datos.
Si los datos del conjunto de datos enlazado se actualizan a través de cualquier mecanismo, el DataGrid control refleja los cambios. Si la cuadrícula de datos y sus estilos de tabla y estilos de columna tienen la propiedad establecida en ReadOnly
, los datos del dataset se pueden actualizar a través del control false
.
Solo se puede mostrar una tabla a la DataGrid vez. Si se define una relación jerárquica entre tablas, el usuario puede moverse entre las tablas relacionadas para seleccionar la tabla que se mostrará en el control DataGrid. Para obtener información sobre cómo enlazar un DataGrid control a un origen de datos de ADO.NET en tiempo de diseño o en tiempo de ejecución, vea How to: Bind the Windows Forms DataGrid Control to a Data Source.
Fuentes de datos válidas para la DataGrid incluyen:
clase DataTable
clase DataView
clase DataSet
clase DataViewManager
Si el origen es un conjunto de datos, el conjunto de datos podría ser un objeto en el formulario o un objeto pasado al formulario por un servicio web XML. Puede vincularse a conjuntos de datos tipados o no tipados.
También puede enlazar un DataGrid control a estructuras adicionales si los objetos de la estructura, como los elementos de una matriz, exponen propiedades públicas. La cuadrícula mostrará todas las propiedades públicas de los elementos de la estructura. Por ejemplo, si enlaza el DataGrid control a una matriz de objetos de cliente, la cuadrícula mostrará todas las propiedades públicas de esos objetos de cliente. En algunos casos, esto significa que, aunque se puede enlazar a la estructura, es posible que la estructura enlazada resultante no tenga una aplicación práctica. Por ejemplo, puede enlazar a una matriz de enteros, pero como el Integer
tipo de datos no admite una propiedad pública, la cuadrícula no puede mostrar ningún dato.
Puede enlazar a las estructuras siguientes si sus elementos exponen propiedades públicas:
Cualquier componente que implemente la IList interfaz. Esto incluye matrices de una sola dimensión.
Cualquier componente que implemente la IListSource interfaz.
Cualquier componente que implemente la IBindingList interfaz.
Para obtener más información sobre los posibles orígenes de datos, vea Orígenes de datos compatibles con Windows Forms.
Pantalla de cuadrícula
Un uso común del DataGrid control es mostrar una sola tabla de datos de un conjunto de datos. Sin embargo, el control también se puede usar para mostrar varias tablas, incluidas las tablas relacionadas. La presentación de la cuadrícula se ajusta automáticamente según el origen de datos. En la tabla siguiente se muestra lo que se muestra para varias configuraciones.
Contenido del conjunto de datos | ¿Qué se muestra? |
---|---|
Tabla única. | La tabla se muestra en una cuadrícula. |
Varias tablas. | La cuadrícula puede mostrar una vista de árbol que los usuarios pueden navegar para buscar la tabla que desea mostrar. |
Varias tablas relacionadas. | La cuadrícula puede mostrar una vista de árbol con la que seleccionar tablas o puede especificar que la cuadrícula muestre la tabla primaria. Los registros de la tabla primaria permiten a los usuarios navegar a filas secundarias relacionadas. |
Nota:
Las tablas de un conjunto de datos están relacionadas mediante un DataRelation. Consulte también Creación de relaciones entre conjuntos de datos.
Cuando el DataGrid control muestra una tabla y la propiedad AllowSorting se establece en true
, los datos se pueden reordenar haciendo clic en los encabezados de columna. El usuario también puede agregar filas y editar celdas.
Las relaciones entre un conjunto de tablas se muestran a los usuarios mediante una estructura primaria o secundaria de navegación. Las tablas principales son el nivel más alto de datos y las tablas secundarias son las que se derivan de las listas individuales de las tablas principales. Los expansores se muestran en cada fila principal que contiene una tabla secundaria. Al hacer clic en un expansador, se genera una lista de vínculos de tipo Web a las tablas secundarias. Cuando el usuario selecciona un vínculo, se muestra la tabla secundaria. Al hacer clic en el icono mostrar u ocultar filas ), se ocultará la información sobre la tabla primaria o se volverá a aparecer si el usuario lo ha ocultado previamente. El usuario puede hacer clic en un botón Atrás para volver a la tabla vista anteriormente.
Columnas y filas
DataGrid consta de una colección de DataGridTableStyle objetos contenidos en la DataGrid propiedad del TableStyles control. Un estilo de tabla puede contener una colección de DataGridColumnStyle objetos que están contenidos en la propiedad de GridColumnStylesDataGridTableStyle. Puede editar las TableStyles propiedades y GridColumnStyles mediante los editores de colecciones a los que se accede a través de la ventana Propiedades .
Se puede acceder a cualquier DataGridTableStyle asociado al DataGrid control a través de GridTableStylesCollection. GridTableStylesCollection se puede editar en el diseñador con el editor de colección DataGridTableStyle o programáticamente a través de la propiedad DataGrid del control TableStyles.
En la ilustración siguiente se muestran los objetos incluidos en el control DataGrid:
Los estilos de tabla y los estilos de columna se sincronizan con DataTable objetos y DataColumn objetos estableciendo sus MappingName
propiedades a las propiedades adecuadas TableName y ColumnName. Cuando se agrega un DataGridTableStyle que no tiene estilos de columna a un control DataGrid enlazado a un origen de datos válido, y la propiedad MappingName de ese estilo de tabla se establece en una propiedad TableName válida, se crea una colección de objetos DataGridColumnStyle para ese estilo de tabla. Para cada DataColumn que se encuentra en la colección de Columns de DataTable, se agrega un DataGridColumnStyle correspondiente a GridColumnStylesCollection.
GridColumnStylesCollection se accede a través de la propiedad GridColumnStyles del DataGridTableStyle. Las columnas se pueden agregar o eliminar de la cuadrícula utilizando el método Add o Remove en GridColumnStylesCollection. Para obtener más información, consulte Cómo: Agregar tablas y columnas al control DataGrid de Windows Forms y Cómo: Eliminar u ocultar columnas en el control DataGrid de Windows Forms.
Una colección de tipos de columna amplía la DataGridColumnStyle clase con funcionalidades de edición y formato enriquecidas. Todos los tipos de columna heredan de la DataGridColumnStyle clase base. La clase que se crea depende de la propiedad DataType de DataColumn en la que se basa DataGridColumn. Por ejemplo, un DataColumn que tiene su DataType propiedad establecida a Boolean se asociará con el DataGridBoolColumn. En la tabla siguiente se describe cada uno de estos tipos de columnas.
Tipo de columna | Descripción |
---|---|
DataGridTextBoxColumn | Acepta y muestra datos como cadenas con formato o sin formato. Las funcionalidades de edición son las mismas que para editar datos en un sencillo TextBox. Se hereda de DataGridColumnStyle. |
DataGridBoolColumn | Acepta y muestra los valores true , false y null. Se hereda de DataGridColumnStyle. |
Al hacer doble clic en el borde derecho de una columna, se cambia el tamaño de la columna para mostrar su título completo y la entrada más ancha.
Estilos de tabla y estilos de columna
En cuanto haya establecido el formato predeterminado del DataGrid control, puede personalizar los colores que se usarán cuando se muestren determinadas tablas dentro de la cuadrícula de datos.
Esto se logra mediante la creación de instancias de la DataGridTableStyle clase . Los estilos de tabla especifican el formato de tablas específicas, distinto del formato predeterminado del DataGrid propio control. Cada tabla puede tener solo un estilo de tabla definido para ella a la vez.
A veces, querrá que una columna específica tenga un aspecto diferente al resto de las columnas de una tabla de datos determinada. Puede crear un conjunto personalizado de estilos de columna mediante la GridColumnStyles propiedad .
Los estilos de columna están relacionados con las columnas de un conjunto de datos, al igual que los estilos de tabla, están relacionados con las tablas de datos. Al igual que cada tabla solo puede tener definido un estilo de tabla a la vez, por lo que cada columna solo puede tener un estilo de columna definido para ella, en un estilo de tabla determinado. Esta relación se define en la propiedad de MappingName la columna.
Si ha creado un estilo de tabla sin estilos de columna agregados, Visual Studio agregará estilos de columna predeterminados cuando el formulario y la cuadrícula se creen en tiempo de ejecución. Sin embargo, si ha creado un estilo de tabla y ha agregado estilos de columna a él, Visual Studio no creará ningún estilo de columna. Además, deberá definir estilos para las columnas y asignarlos con el nombre de mapeo para que las columnas que desea aparezcan en la cuadrícula.
Dado que se especifican las columnas que se incluyen en la cuadrícula de datos asignando un estilo de columna y no se ha asignado ningún estilo de columna a las columnas, puede incluir columnas de datos en el conjunto de datos que no se muestran en la cuadrícula. Sin embargo, dado que la columna de datos se incluye en el conjunto de datos, puede editar mediante programación los datos que no se muestran.
Nota:
En general, cree estilos de columna y agréguelos a la colección de estilos de columna antes de agregar estilos de tabla a la colección de estilos de tabla. Al agregar un estilo de tabla vacío a la colección, los estilos de columna se generan automáticamente. Por lo tanto, se producirá una excepción si intenta agregar nuevos estilos de columna con valores duplicados MappingName a la colección de estilos de columna.
A veces, querrá simplemente ajustar una columna entre muchas columnas; Por ejemplo, el conjunto de datos contiene 50 columnas y solo desea 49 de ellas. En este caso, es más fácil importar todas las 50 columnas y quitar una mediante programación, en lugar de agregar mediante programación cada una de las 49 columnas individuales que desee.
Formato
El formato que se puede aplicar al DataGrid control incluye estilos de borde, estilos de cuadrícula, fuentes, propiedades de título, alineación de datos y colores de fondo alternados entre filas. Para obtener más información, vea Cómo: Dar formato al control DataGrid de Windows Forms.
Eventos
Además de los eventos de control comunes, como MouseDown, Entery Scroll, el DataGrid control admite eventos asociados a la edición y navegación dentro de la cuadrícula. La CurrentCell propiedad determina qué celda está seleccionada. El CurrentCellChanged evento se genera cuando el usuario navega a una nueva celda. Cuando el usuario navega a una nueva tabla a través de relaciones padre/hijo, el evento Navigate se genera. El evento BackButtonClick se genera cuando el usuario hace clic en el botón Atrás mientras visualiza una tabla secundaria, y el evento ShowParentDetailsButtonClick se genera al hacer clic en el icono de mostrar/ocultar filas principales.
Consulte también
.NET Desktop feedback