Comportamiento predeterminado de teclado y mouse en el control DataGridView

En este tema se describe cómo los usuarios pueden interactuar con el control DataGrid mediante el teclado y el mouse.

Las interacciones típicas con DataGrid incluyen: navegación, selección y edición. El comportamiento de la selección se ve afectado por las propiedades SelectionMode y SelectionUnit. Los valores predeterminados que provocan el comportamiento descrito en este tema son DataGridSelectionMode.Extended y DataGridSelectionUnit.FullRow. Cambiar estos valores puede provocar un comportamiento diferente del descrito. Cuando una celda está en modo de edición, el control de edición podría invalidar el comportamiento estándar del teclado de DataGrid.

Comportamiento predeterminado del teclado

En la tabla siguiente se muestra el comportamiento predeterminado del teclado para DataGrid.

Teclas o combinación de teclas Descripción
FLECHA ABAJO Mueve el foco a la celda directamente debajo de la celda actual. Si el foco está en la última fila, presionar la FLECHA ABAJO no hace nada.
FLECHA ARRIBA Mueve el foco a la celda directamente encima de la celda actual. Si el foco está en la primera fila, presionar la FLECHA ARRIBA no hace nada.
FLECHA IZQUIERDA Mueve el foco a la celda anterior de la fila. Si el foco está en la primera celda de la fila, presionar la FLECHA IZQUIERDA no hace nada.
FLECHA DERECHA Mueve el foco a la celda siguiente de la fila. Si el foco está en la última celda de la fila, presionar la FLECHA DERECHA no hace nada.
INICIO Mueve el foco a la primera celda de la fila actual.
FIN Mueve el foco a la última celda de la fila actual.
AV PÁG Si las filas no están agrupadas, desplaza el control hacia abajo por el número de filas que se muestran por completo. Mueve el foco a la última fila que se muestra totalmente sin cambiar las columnas.

Si las filas se agrupan, mueve el foco a la última fila de DataGrid sin cambiar las columnas.
RE PÁG Si las filas no están agrupadas, desplaza el control hacia arriba por el número de filas que se muestran por completo. Mueve el foco a la primera fila mostrada sin cambiar las columnas.

Si las filas se agrupan, mueve el foco a la primera fila de DataGrid sin cambiar las columnas.
TAB Mueve el foco a la celda siguiente de la fila actual. Si el foco está en la última celda de la fila, mueve el foco a la primera celda de la fila siguiente. Si el foco está en la última celda del control, mueve el foco al siguiente control en el orden de tabulación del contenedor primario.

Si la celda actual está en modo de edición y al presionar TAB el foco se aleja de la fila actual, los cambios realizados en la fila se confirman antes de cambiar el foco.
MAYÚS+TAB Mueve el foco a la celda anterior de la fila actual. Si el foco ya está en la primera celda de la fila, mueve el foco a la última celda de la fila anterior. Si el foco está en la primera celda del control, mueve el foco al control anterior en el orden de tabulación del contenedor primario.

Si la celda actual está en modo de edición y al presionar TAB el foco se aleja de la fila actual, los cambios realizados en la fila se confirman antes de cambiar el foco.
CTRL+FLECHA ABAJO Mueve el foco a la última celda de la columna actual.
CTRL+FLECHA ARRIBA Mueve el foco a la primera celda de la columna actual.
CTRL+FLECHA DERECHA Mueve el foco a la última celda de la fila actual.
CTRL+FLECHA IZQUIERDA Mueve el foco a la primera celda de la fila actual.
CTRL+INICIO Mueve el foco a la primera celda del control.
CTRL+FIN Mueve el foco a la última celda del control.
CTRL+AV PÁG Igual que AV PÁG.
CTRL+RE PÁG Igual que RE PÁG.
F2 Si la propiedad DataGrid.IsReadOnly es false y la propiedad DataGridColumn.IsReadOnly es false para la columna actual, coloca la celda actual en modo de edición de celda.
ENTRAR Confirma los cambios realizados en la celda y fila actuales y mueve el foco a la celda directamente debajo de la celda actual. Si el foco está en la última fila, confirma los cambios sin mover el foco.
ESC Si el control está en modo de edición, cancela la edición y revierte los cambios realizados en el control. Si el origen de datos subyacente implementa IEditableObject, al presionar ESC una segunda vez se cancela el modo de edición de toda la fila.
RETROCESO Elimina el carácter antes del cursor al editar una celda.
DELETE Elimina el carácter después del cursor al editar una celda.
CTRL+ENTRAR Confirma los cambios realizados en la celda actual sin mover el foco.
CTRL+A Si SelectionMode se establece en Extended, selecciona todas las filas de DataGrid.

Teclas de selección

Si la propiedad SelectionMode se establece en Extended, el comportamiento de navegación no cambia, pero navegar con el teclado mientras presiona MAYÚS (incluido CTRL+MAYÚS) modificará una selección de varias filas. Antes de que se inicie la navegación, el control marca la fila actual como una fila de anclaje. Al navegar mientras presiona MAYÚS, la selección incluye todas las filas entre la fila de anclaje y la fila actual.

Las siguientes teclas de selección modifican la selección de varias filas.

  • MAYÚS+FLECHA ABAJO

  • MAYÚS+FLECHA ARRIBA

  • MAYÚS + AV PÁG

  • MAYÚS + RE PÁG

  • CTRL+MAYÚS+FLECHA ABAJO

  • CTRL+MAYÚS+FLECHA ARRIBA

  • CTRL+MAYÚS+INICIO

  • CTRL+MAYÚS+FIN

Comportamiento predeterminado del mouse

En la tabla siguiente se muestra el comportamiento predeterminado del mouse para DataGrid.

Acción del mouse Descripción
Clic en una fila no seleccionada Convierte la fila en la que se hace clic en la fila actual y la celda en la que se hace clic en la celda actual.
Clic en la celda actual Pone la celda actual en modo de edición.
Arrastrado de una celda de encabezado de columna Si la propiedad DataGrid.CanUserReorderColumns es true y la propiedad DataGridColumn.CanUserReorder es true para la columna actual, mueve la columna para que se pueda colocar en una nueva posición.
Arrastrado de un separador de encabezado de columna Si la propiedad DataGrid.CanUserResizeColumns es true y la propiedad DataGridColumn.CanUserResize es true para la columna actual, cambia el tamaño de la columna.
Doble clic en un separador de encabezado de columna Si la propiedad DataGrid.CanUserResizeColumns es true y la propiedad DataGridColumn.CanUserResize es true para la columna actual, cambia el tamaño automático de la columna mediante el modo de ajuste de tamaño Auto.
Clic en una celda de encabezado de columna Si la propiedad DataGrid.CanUserSortColumns es true y la propiedad DataGridColumn.CanUserSort es true para la columna actual, ordena la columna.

Al hacer clic en el encabezado de una columna que ya está ordenada, se invertirá la dirección de ordenación de esa columna.

Al presionar la tecla MAYÚS al hacer clic en varios encabezados de columna, se ordenarán por varias columnas en el orden en que se haga clic.
CTRL+clic en una fila Si SelectionMode se establece en Extended, modifica una selección de varias filas no contigua.

Si la fila ya está seleccionada, anula la selección de la fila.
MAYÚS+clic en una fila Si SelectionMode se establece en Extended, modifica una selección contigua de varias filas.
Clic en un encabezado de grupo de filas Expande o contrae el grupo.
Clic en el botón Seleccionar todo situado en la esquina superior izquierda de DataGrid Si SelectionMode se establece en Extended, selecciona todas las filas de DataGrid.

Selección del mouse

Si la propiedad SelectionMode está establecida en Extended, hacer clic en una fila mientras presiona CTRL o MAYÚS modificará una selección de varias filas.

Al hacer clic en una fila mientras presiona CTRL, la fila cambiará su estado de selección mientras que todas las demás filas conservan su estado de selección actual. Haga esto para seleccionar filas no adyacentes.

Al hacer clic en una fila mientras presiona MAYÚS, la selección incluye todas las filas entre la fila actual y una fila de anclaje situada en la posición de la fila actual antes del clic. Los clics posteriores al presionar MAYÚS cambian la fila actual, pero no la fila de anclaje. Haga esto para seleccionar un intervalo de filas adyacentes.

CTRL+MAYÚS se puede combinar para seleccionar intervalos no adyacentes de filas adyacentes. Para ello, seleccione el primer intervalo con MAYÚS+clic como se ha descrito anteriormente. Una vez seleccionado el primer intervalo de filas, use CTRL+clic para seleccionar la primera fila del siguiente intervalo y, a continuación, haga clic en la última fila del siguiente intervalo mientras presiona CTRL+MAYÚS.

Vea también