Arquitectura del control DataGridView (formularios Windows Forms)
El control DataGridView y sus clases derivadas están diseñados para ser un sistema flexible y extensible para mostrar barras de herramientas y editar datos en formato de tabla. Todas estas clases están contenidas en el espacio de nombres System.Windows.Forms y se les denomina con el prefijo "DataGridView".
Elementos de arquitectura
Las clases que acompañan a la clase DataGridView primaria derivan de DataGridViewElement. El siguiente modelo de objetos muestra la jerarquía de herencia de DataGridViewElement.
Modelo de objetos DataGridViewElement
La clase DataGridViewElement proporciona una referencia al control DataGridView primario y tiene una propiedad State que contiene un valor que representa una combinación de valores de la enumeración DataGridViewElementStates.
En las secciones siguientes se describen más detalladamente las clases que acompañan a DataGridView.
DataGridViewElementStates
La enumeración DataGridViewElementStates contiene los valores siguientes.
Los valores de esta enumeración se pueden combinar con los operadores lógicos bit a bit, de modo que la propiedad State puede expresar más de un estado a la vez. Por ejemplo, un elemento DataGridViewElement puede ser simultáneamente Frozen, Selected y Visible.
Celdas y bandas
El control DataGridView se compone de dos tipos fundamentales de objetos: celdas y bandas. Todas las celdas derivan de la clase base DataGridViewCell. Los dos tipos de bandas, DataGridViewColumn y DataGridViewRow, derivan de la clase base DataGridViewBand.
El control DataGridView interopera con varias clases, pero las más habituales son: DataGridViewCell, DataGridViewColumn y DataGridViewRow.
DataGridViewCell
La celda es la unidad fundamental de interacción para DataGridView. La presentación se centra en las celdas y la entrada de datos se suele realizar a través de las celdas. Puede obtener acceso a las celdas utilizando la colección Cells de la clase DataGridViewRow y tener acceso a las celdas seleccionadas utilizando la colección SelectedCells del control DataGridView. El modelo de objetos siguiente muestra este uso así como la jerarquía de herencia de DataGridViewCell.
Modelo de objetos DataGridViewCell
El tipo DataGridViewCell es una clase base abstracta, de la que derivan todos los tipos de celdas. DataGridViewCell y sus tipos derivados no son controles de Windows Forms, pero algunos hospedan controles de Windows Forms. Un control hospedado controla normalmente cualquier función de edición admitida por una celda.
Los objetos DataGridViewCell no controlan su propia apariencia y las características de dibujo de la misma manera que los controles de formularios Windows Forms. En su lugar, DataGridView se encarga de la apariencia de los objetos DataGridViewCell. Puede afectar significativamente a la apariencia y comportamiento de celdas interactuando con las propiedades y eventos del control DataGridView. Si tiene requisitos especiales de personalizaciones que van más allá de los recursos del control DataGridView, puede implementar su propia clase que deriva de DataGridViewCell o de una de sus clases secundarias.
La lista siguiente muestra las clases derivadas de DataGridViewCell:
Tipos de celda personalizados
DataGridViewColumn
El esquema del almacén de datos asociado del control DataGridView se expresa en las columnas del control DataGridView. Puede tener acceso a las columnas del control DataGridView utilizando la colección Columns. Puede tener acceso a las columnas seleccionadas utilizando la colección SelectedColumns. El modelo de objetos siguiente muestra este uso así como la jerarquía de herencia de DataGridViewColumn.
Modelo de objetos DataGridViewColumn
Algunos de los tipos de celda clave tienen tipos de columna correspondientes. Éstos se derivan de la clase base DataGridViewColumn.
La lista siguiente incluye las clases derivadas de DataGridViewColumn:
Tipos de columna personalizada
Controles de edición DataGridView
Las celdas que admiten funciones de edición avanzadas normalmente utilizan un control hospedado que se deriva de un control de formularios Windows Forms. Estos controles también implementan la interfaz IDataGridViewEditingControl. El modelo de objetos siguiente muestra el uso de estos controles.
Modelo de objetos de control de edición DataGridView
Se proporcionan los controles de edición siguientes con el control DataGridView:
Para obtener información sobre cómo crear sus propios controles de edición, vea Cómo: Alojar controles en celdas DataGridView de formularios Windows Forms.
En la tabla siguiente se muestra la relación entre los tipos de celda, tipos de columna y controles de edición.
Tipo de celda |
Control hospedado |
Tipo de columna |
---|---|---|
no disponible |
||
no disponible |
||
no disponible |
||
no disponible |
||
DataGridViewRow
La clase DataGridViewRow muestra campos de datos de un registro del almacén de datos al que se asocia el control DataGridView. Puede tener acceso a las filas del control DataGridView utilizando la colección Rows. Puede tener acceso a las filas seleccionadas utilizando la colección SelectedRows. El modelo de objetos siguiente muestra este uso así como la jerarquía de herencia de DataGridViewRow.
Modelo de objetos DataGridViewRow
Puede derivar sus propios tipos de la clase DataGridViewRow, aunque esto normalmente no será necesario. El control DataGridView tiene varios eventos relacionados con fila y propiedades para personalizar el comportamiento de los objetos DataGridViewRow.
Si habilita la propiedad AllowUserToAddRows del control DataGridView, aparecerá en la última fila una fila especial para agregar nuevas filas. Esta fila forma parte de la colección Rows, pero tiene funcionalidad especial que puede requerir su atención. Para obtener más información, vea Utilizar la fila de nuevos registros en el control DataGridView de formularios Windows Forms.
Vea también
Referencia
Información general del control DataGridView (Formularios Windows Forms)
Conceptos
Utilizar la fila de nuevos registros en el control DataGridView de formularios Windows Forms
Otros recursos
Personalizar el control DataGridView de formularios Windows Forms