Compartir a través de


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

A veces deseará que la aplicación realice acciones según las selecciones del usuario dentro de un control DataGridView. En función de las acciones, puede desear limitar los tipos de selección permitidos. Por ejemplo, suponga que la aplicación puede imprimir un informe para el registro actualmente seleccionado. En este caso, quizá desee configurar el control DataGridView de modo que al hacer clic con el mouse en cualquier posición dentro de una fila siempre se seleccione la fila completa y que sólo se pueda seleccionar una fila a la vez.

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

Valor de DataGridViewSelectionMode

Descripción

CellSelect

Si hace clic en una celda se selecciona. Los encabezados de fila y columna no se pueden utilizar para la selección.

ColumnHeaderSelect

Si hace clic en una celda se selecciona. Al hacer clic en un encabezado de columna, se selecciona la columna completa. Los encabezados de columna no se pueden utilizar para ordenar.

FullColumnSelect

Al hacer clic en un un encabezado de celda o columna se selecciona la columna completa. Los encabezados de columna no se pueden utilizar para ordenar.

FullRowSelect

Al hacer clic en un encabezado de celda o fila se selecciona la fila completa.

RowHeaderSelect

Modo de selección predeterminado. Si hace clic en una celda se selecciona. Al hacer clic en un encabezado de fila, se selecciona la fila completa.

Nota

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

De manera predeterminada, para seleccionar varias filas, columnas o celdas los usuarios arrastran con el mouse, presionan CTRL o MAYÚS mientras realizan la selección para ampliar o modificar la selección o hacen clic con el mouse en la celda de encabezado superior izquierda para seleccionar todas las celdas del control. Para impedir este comportamiento, establezca la propiedad MultiSelect en false.

Los modos FullRowSelect y RowHeaderSelect permiten que los usuarios eliminen filas seleccionándolas y presionando la tecla SUPR. Los usuarios pueden eliminar filas sólo cuando la celda actual no está en el modo de edición, la propiedad AllowUserToDeleteRows está establecida en true y el origen de datos subyacente admite la eliminación de fila controlada por el usuario. Observe que esta configuración no evita la eliminación de fila mediante programación.

Selección mediante programación

El modo de selección actual limita el comportamiento de la selección mediante programación así como la selección del usuario. Puede cambiar mediante programación la selección actual estableciendo la propiedad Selected de cualquier celda, fila o columna presente en el control DataGridView. También puede seleccionar todas las celdas del control a través del método SelectAll, en función del modo de selección. Para borrar la selección, utilice el método ClearSelection.

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

Observe que al cambiar el valor de la propiedad CurrentCell, no se modifica la selección actual.

Puede recuperar una colección de celdas, filas o columnas actualmente seleccionadas a través de las propiedades SelectedCells, SelectedRowsy SelectedColumns del control DataGridView. El acceso a estas propiedades es ineficaz cuando se seleccionan todas las celdas del control. Para evitar una reducción del rendimiento en este caso, utilice primero el método AreAllCellsSelected. Además, tener acceso a estas colecciones para determinar el número de celdas, filas o columnas seleccionadas puede resultar ineficaz. En su lugar, utilice el método GetCellCount, GetRowCounto GetColumnCount, con el valor Selected pasado como parámetro.

SugerenciaSugerencia

Para obtener un código de ejemplo en el que se muestra el uso mediante programación de las celdas seleccionadas, vea la información general sobre la clase DataGridView.

Vea también

Tareas

Cómo: Establecer el modelo de selección del control DataGridView de formularios Windows Forms

Referencia

DataGridView

MultiSelect

SelectionMode

DataGridViewSelectionMode

Otros recursos

Selección y uso del Portapapeles con el control DataGridView de formularios Windows Forms