Comportamento predefinito di tastiera e mouse nel controllo DataGrid

In questo argomento viene descritto come gli utenti possono interagire con il DataGrid controllo usando la tastiera e il mouse.

Le interazioni tipiche con includono la navigazione, la DataGrid selezione e la modifica. Il comportamento di selezione è influenzato dalle SelectionMode proprietà e SelectionUnit . I valori predefiniti che causano il comportamento descritto in questo argomento sono DataGridSelectionMode.Extended e DataGridSelectionUnit.FullRow. La modifica di questi valori potrebbe causare un comportamento diverso da quello descritto. Quando una cella è in modalità di modifica, il controllo di modifica potrebbe eseguire l'override del comportamento standard della DataGridtastiera di .

Comportamento predefinito della tastiera

La tabella seguente elenca il comportamento predefinito della tastiera per .DataGrid

Tasto o della combinazione Descrizione
FRECCIA GIÙ Sposta lo stato attivo sulla cella direttamente sotto la cella corrente. Se lo stato attivo si trova nell'ultima riga, premendo freccia GIÙ non viene eseguita alcuna operazione.
FRECCIA SU Sposta lo stato attivo sulla cella direttamente sopra la cella corrente. Se lo stato attivo si trova nella prima riga, premendo freccia SU non viene eseguita alcuna operazione.
FRECCIA SINISTRA Sposta lo stato attivo sulla cella precedente della riga. Se lo stato attivo si trova nella prima cella della riga, premendo la freccia SINISTRA non viene eseguita alcuna operazione.
FRECCIA DESTRA Sposta lo stato attivo sulla cella successiva della riga. Se lo stato attivo si trova nell'ultima cella della riga, premendo freccia DESTRA non viene eseguita alcuna operazione.
HOME Sposta lo stato attivo sulla prima cella della riga corrente.
END Sposta lo stato attivo sull'ultima cella della riga corrente.
PGGIÙ Se le righe non sono raggruppate, scorre il controllo verso il basso in base al numero di righe visualizzate completamente. Sposta lo stato attivo sull'ultima riga completamente visualizzata senza modificare le colonne.

Se le righe sono raggruppate, sposta lo stato attivo sull'ultima riga dell'oggetto DataGrid senza modificare le colonne.
PGSU Se le righe non sono raggruppate, scorre il controllo verso l'alto in base al numero di righe visualizzate completamente. Sposta lo stato attivo sulla prima riga visualizzata senza modificare le colonne.

Se le righe sono raggruppate, sposta lo stato attivo sulla prima riga dell'oggetto DataGrid senza modificare le colonne.
TAB Sposta lo stato attivo sulla cella successiva della riga corrente. Se lo stato attivo si trova nell'ultima cella della riga, sposta lo stato attivo sulla prima cella della riga successiva. Se lo stato attivo si trova nell'ultima cella del controllo, sposta lo stato attivo sul controllo successivo nell'ordine di tabulazione del contenitore padre.

Se la cella corrente è in modalità di modifica e la pressione di TAB determina lo spostamento dello stato attivo dalla riga corrente, tutte le modifiche apportate alla riga vengono sottoposte a commit prima che lo stato attivo venga modificato.
MAIUSC+TAB Sposta lo stato attivo sulla cella precedente nella riga corrente. Se lo stato attivo si trova già nella prima cella della riga, sposta lo stato attivo sull'ultima cella della riga precedente. Se lo stato attivo si trova nella prima cella del controllo, sposta lo stato attivo sul controllo precedente nell'ordine di tabulazione del contenitore padre.

Se la cella corrente è in modalità di modifica e la pressione di TAB determina lo spostamento dello stato attivo dalla riga corrente, tutte le modifiche apportate alla riga vengono sottoposte a commit prima che lo stato attivo venga modificato.
CTRL+freccia GIÙ Sposta lo stato attivo sull'ultima cella della colonna corrente.
CTRL+freccia SU Sposta lo stato attivo sulla prima cella della colonna corrente.
CTRL + FRECCIA DESTRA Sposta lo stato attivo sull'ultima cella della riga corrente.
CTRL + FRECCIA SINISTRA Sposta lo stato attivo sulla prima cella della riga corrente.
CTRL+HOME Sposta lo stato attivo sulla prima cella del controllo.
CTRL+FINE Sposta lo stato attivo sull'ultima cella del controllo.
CTRL+PGGIÙ Uguale a PAGE DOWN.
CTRL+PGSU Uguale a PAGE UP.
F2 Se la DataGrid.IsReadOnly proprietà è false e la DataGridColumn.IsReadOnly proprietà è false per la colonna corrente, imposta la cella corrente in modalità di modifica della cella.
INVIO Esegue il commit delle modifiche apportate alla cella e alla riga correnti e sposta lo stato attivo sulla cella direttamente sotto la cella corrente. Se lo stato attivo si trova nell'ultima riga, esegue il commit di eventuali modifiche senza spostare lo stato attivo.
ESC Se il controllo è in modalità di modifica, annulla la modifica e ripristina le modifiche apportate nel controllo. Se l'origine dati sottostante implementa IEditableObject, premendo ESC una seconda volta si annulla la modalità di modifica per l'intera riga.
BACKSPACE Elimina il carattere prima del cursore durante la modifica di una cella.
DELETE Elimina il carattere dopo il cursore durante la modifica di una cella.
CTRL+INVIO Esegue il commit delle modifiche apportate alla cella corrente senza spostare lo stato attivo.
CTRL+A Se SelectionMode è impostato su Extended, seleziona tutte le righe in DataGrid.

Tasti di selezione

Se la SelectionMode proprietà è impostata su Extended, il comportamento di spostamento non cambia, ma lo spostamento con la tastiera mentre si preme MAIUSC (incluso CTRL+MAIUSC) modificherà una selezione a più righe. Prima dell'avvio della navigazione, il controllo contrassegna la riga corrente come riga di ancoraggio. Quando si sposta durante la pressione di MAIUSC, la selezione include tutte le righe tra la riga di ancoraggio e la riga corrente.

Le chiavi di selezione seguenti modificano la selezione di più righe.

  • MAIUSC+freccia GIÙ

  • MAIUSC+freccia SU

  • MAIUSC+PGGIÙ

  • MAIUSC+PGSU

  • CTRL+MAIUSC+freccia GIÙ

  • CTRL+MAIUSC+freccia SU

  • CTRL+MAIUSC+HOME

  • CTRL+MAIUSC+FINE

Comportamento predefinito del mouse

La tabella seguente elenca il comportamento predefinito del mouse per .DataGrid

Azione del mouse Descrizione
Fare clic su una riga non selezionata Rende la riga selezionata sulla riga corrente e sulla cella selezionata la cella corrente.
Fare clic sulla cella corrente Inserisce la cella corrente in modalità di modifica.
Trascinare una cella di intestazione di colonna Se la DataGrid.CanUserReorderColumns proprietà è true e la DataGridColumn.CanUserReorder proprietà è true per la colonna corrente, sposta la colonna in modo che possa essere eliminata in una nuova posizione.
Trascinare un separatore di intestazione di colonna Se la DataGrid.CanUserResizeColumns proprietà è true e la DataGridColumn.CanUserResize proprietà è true per la colonna corrente, ridimensiona la colonna.
Fare doppio clic su un separatore di intestazione di colonna Se la DataGrid.CanUserResizeColumns proprietà è true e la DataGridColumn.CanUserResize proprietà è true per la colonna corrente, ridimensiona automaticamente la colonna usando la Auto modalità di ridimensionamento.
Fare clic su una cella di intestazione di colonna Se la DataGrid.CanUserSortColumns proprietà è true e la DataGridColumn.CanUserSort proprietà è true per la colonna corrente, ordina la colonna.

Facendo clic sull'intestazione di una colonna già ordinata si invertirà la direzione di ordinamento di tale colonna.

Premendo MAIUSC mentre si fa clic su più intestazioni di colonna, verranno ordinate in base a più colonne nell'ordine selezionato.
CTRL+clic su una riga Se SelectionMode è impostato su Extended, modifica una selezione di più righe non contigua.

Se la riga è già selezionata, deseleziona la riga.
MAIUSC+clic su una riga Se SelectionMode è impostato su Extended, modifica una selezione di più righe contigua.
Fare clic su un'intestazione del gruppo di righe Espande o comprime il gruppo.
Fare clic sul pulsante Seleziona tutto nell'angolo superiore sinistro del DataGrid Se SelectionMode è impostato su Extended, seleziona tutte le righe in DataGrid.

Selezione mouse

Se la SelectionMode proprietà è impostata su Extended, facendo clic su una riga premendo CTRL o MAIUSC verrà modificata una selezione a più righe.

Quando si fa clic su una riga premendo CTRL, la riga modifica lo stato di selezione mentre tutte le altre righe mantengono lo stato di selezione corrente. Eseguire questa operazione per selezionare le righe non adiacenti.

Quando si fa clic su una riga premendo MAIUSC, la selezione include tutte le righe tra la riga corrente e una riga di ancoraggio che si trova nella posizione della riga corrente prima del clic. I clic successivi durante la pressione di MAIUSC modificano la riga corrente, ma non la riga di ancoraggio. Eseguire questa operazione per selezionare un intervallo di righe adiacenti.

È possibile combinare CTRL+MAIUSC per selezionare intervalli non adiacenti di righe adiacenti. A tale scopo, selezionare il primo intervallo usando MAIUSC+clic come descritto in precedenza. Dopo aver selezionato il primo intervallo di righe, usare CTRL+clic per selezionare la prima riga nell'intervallo successivo, quindi fare clic sull'ultima riga nell'intervallo successivo premendo CTRL+MAIUSC.

Vedi anche