Compartir por


Modos de selección en el control DataGridView de Windows Forms

A veces, quiere que la aplicación realice acciones en función de las selecciones de usuario dentro de un DataGridView control. En función de las acciones, puede restringir los tipos de selección que son posibles. Por ejemplo, supongamos que la aplicación puede imprimir un informe para el registro seleccionado actualmente. En este caso, es posible que desee configurar el DataGridView control para que, al hacer clic en cualquier parte de una fila, siempre se seleccione toda la fila y para que solo se pueda seleccionar una fila a la vez.

Puede especificar las selecciones permitidas estableciendo la DataGridView.SelectionMode propiedad en uno de los siguientes DataGridViewSelectionMode valores de enumeración.

Valor de DataGridViewSelectionMode Descripción
CellSelect Al hacer clic en una celda, se selecciona. Los encabezados de fila y columna no se pueden usar para la selección.
ColumnHeaderSelect Al hacer clic en una celda, se selecciona. Al hacer clic en un encabezado de columna, se selecciona toda la columna. No se pueden usar encabezados de columna para la ordenación.
FullColumnSelect Al hacer clic en una celda o un encabezado de columna, se selecciona toda la columna. No se pueden usar encabezados de columna para la ordenación.
FullRowSelect Al hacer clic en una celda o un encabezado de fila, se selecciona toda la fila.
RowHeaderSelect Modo de selección predeterminado. Al hacer clic en una celda, se selecciona. Al hacer clic en un encabezado de fila, se selecciona toda la fila.

Nota:

Al cambiar el modo de selección en tiempo de ejecución, se borra automáticamente la selección actual.

De forma predeterminada, los usuarios pueden seleccionar varias filas, columnas o celdas arrastrando con el mouse, presionando CTRL o MAYÚS al seleccionar extender o modificar una selección, o haciendo clic en la celda de encabezado superior izquierda para seleccionar todas las celdas del control. Para evitar este comportamiento, establezca la propiedad MultiSelect a false.

Los FullRowSelect modos y RowHeaderSelect permiten a los usuarios eliminar filas seleccionándolos y presionando la tecla DELETE. Los usuarios solo pueden eliminar filas cuando la celda actual no está en modo de edición, la propiedad AllowUserToDeleteRows está establecida en true y el origen de datos subyacente admite la eliminación de filas por parte del usuario. Tenga en cuenta que esta configuración no impide la eliminación de filas mediante programación.

Selección mediante programación

El modo de selección actual restringe el comportamiento de la selección mediante programación, así como la selección del usuario. Puede cambiar la selección actual mediante programación estableciendo la Selected propiedad de las celdas, filas o columnas presentes en el DataGridView control. También puede seleccionar todas las celdas del control a través del SelectAll método , en función del modo de selección. Para borrar la selección, use el ClearSelection método .

Si la MultiSelect propiedad está establecida en true, puede agregar o quitar DataGridView elementos de la selección cambiando la propiedad Selected del elemento. De lo contrario, establecer la propiedad Selected en true para un elemento quitará automáticamente otros elementos de la selección.

Tenga en cuenta que cambiar el valor de la CurrentCell propiedad no modifica la selección actual.

Puede recuperar una colección de las celdas, filas o columnas seleccionadas actualmente mediante las propiedades SelectedCells, SelectedRows y SelectedColumns del control DataGridView. El acceso a estas propiedades es ineficaz cuando se selecciona cada celda del control. Para evitar una penalización de rendimiento en este caso, use primero el AreAllCellsSelected método . Además, el acceso a estas colecciones para determinar el número de celdas, filas o columnas seleccionadas puede ser ineficaz. En su lugar, debe usar el GetCellCount, GetRowCount o GetColumnCount, pasando el valor Selected.

Sugerencia

El código de ejemplo que muestra el uso mediante programación de las celdas seleccionadas se puede encontrar en la información general de la DataGridView clase.

Consulte también