Arquitectura del control DataGridView (formularios Windows Forms)

Actualización: noviembre 2007

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 formularios Windows Forms, pero algunos alojan controles de formularios Windows Forms. Un control alojado 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:

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 muestra las clases derivadas de DataGridViewColumn:

Controles de edición DataGridView

Las celdas que admiten funciones de edición avanzadas normalmente utilizan un control alojado 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 alojado

Tipo de columna

DataGridViewButtonCell

no disponible

DataGridViewButtonColumn

DataGridViewCheckBoxCell

no disponible

DataGridViewCheckBoxColumn

DataGridViewComboBoxCell

DataGridViewComboBoxEditingControl

DataGridViewComboBoxColumn

DataGridViewImageCell

no disponible

DataGridViewImageColumn

DataGridViewLinkCell

no disponible

DataGridViewLinkColumn

DataGridViewTextBoxCell

DataGridViewTextBoxEditingControl

DataGridViewTextBoxColumn

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

Conceptos

Utilizar la fila de nuevos registros en el control DataGridView de formularios Windows Forms

Referencia

Información general del control DataGridView (Formularios Windows Forms)

Otros recursos

Personalizar el control DataGridView de formularios Windows Forms