Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

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".

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

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.

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.

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.

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

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:

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

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:

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 de DataGridView

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

DataGridViewButtonCell

no disponible

DataGridViewButtonColumn

DataGridViewCheckBoxCell

no disponible

DataGridViewCheckBoxColumn

DataGridViewComboBoxCell

DataGridViewComboBoxEditingControl

DataGridViewComboBoxColumn

DataGridViewImageCell

no disponible

DataGridViewImageColumn

DataGridViewLinkCell

no disponible

DataGridViewLinkColumn

DataGridViewTextBoxCell

DataGridViewTextBoxEditingControl

DataGridViewTextBoxColumn

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

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.

Mostrar: