Condividi tramite


Comportamento predefinito della tastiera e del mouse con il controllo DataGridView

Le tabelle seguenti descrivono come gli utenti possono interagire con il DataGridView controllo tramite una tastiera e un mouse.

Annotazioni

Per personalizzare il comportamento della tastiera, è possibile gestire eventi della tastiera standard, KeyDownad esempio . In modalità di modifica, tuttavia, il controllo di modifica ospitato riceve l'input della tastiera e gli eventi della tastiera non si verificano per il DataGridView controllo. Per gestire gli eventi di controllo di modifica, collegare i gestori al controllo di modifica in un EditingControlShowing gestore eventi. In alternativa, è possibile personalizzare il comportamento della tastiera in una DataGridView sottoclasse eseguendo l'override dei ProcessDialogKey metodi e ProcessDataGridViewKey .

Gestione predefinita della tastiera

Tasti di spostamento e immissione di base

Chiave o combinazione di tasti Descrizione
Freccia GIÙ Sposta il cursore sulla cella sotto quella attuale. Se lo stato attivo si trova nell'ultima riga, non esegue alcuna operazione.
freccia sinistra Sposta il focus sulla cella precedente della riga. Se lo stato attivo si trova nella prima cella della riga, non esegue alcuna operazione.
freccia destra Sposta lo stato attivo sulla cella successiva della riga. Se lo stato attivo si trova nell'ultima cella della riga, non esegue alcuna operazione.
Freccia SU Sposta il cursore sulla cella direttamente sopra la cella corrente. Se il focus si trova nella prima riga, non fa nulla.
Casa Sposta lo stato attivo sulla prima cella della riga corrente.
Fine Sposta il focus sull'ultima cella della riga corrente.
Pagina giù Scorre il controllo verso il basso in base al numero di righe visualizzate completamente. Sposta il focus sull'ultima riga completamente visualizzata senza modificare le colonne.
Pagina su Scorre il controllo verso l'alto in base al numero di righe completamente visualizzate. Sposta il focus sulla prima riga visualizzata senza modificare le colonne.
Scheda Se il valore della StandardTab proprietà è false, sposta il focus sulla cella successiva nella riga corrente. Se lo stato attivo è già nell'ultima cella della riga, sposta lo stato attivo sulla prima cella della riga successiva. Se il focus si trova nell'ultima cella del controllo, sposta il focus sul controllo successivo nell'ordine di tabulazione del contenitore padre.

Se il valore della StandardTab proprietà è true, sposta lo stato attivo sul controllo successivo nell'ordine di tabulazione del contenitore padre.
Spostare + Scheda Se il valore della proprietà StandardTab è false, sposta il focus 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 sulla prima cella del controllo, sposta lo stato attivo sul controllo precedente nella sequenza di tabulazione del contenitore padre.

Se il valore della proprietà StandardTab è true, sposta il focus sul controllo precedente nella sequenza di tabulazione del contenitore padre.
CTRL + Tab Se il valore della StandardTab proprietà è false, sposta lo stato attivo sul controllo successivo nell'ordine di tabulazione del contenitore padre.

Se il valore della StandardTab proprietà è true, sposta il focus sulla cella successiva nella riga corrente. Se lo stato attivo è già nell'ultima cella della riga, sposta lo stato attivo sulla prima cella della riga successiva. Se il focus si trova nell'ultima cella del controllo, sposta il focus sul controllo successivo nell'ordine di tabulazione del contenitore padre.
Ctrl + Spostare + Scheda Se il valore della proprietà StandardTab è false, sposta il focus sul controllo precedente nella sequenza di tabulazione del contenitore padre.

Se il valore della proprietà StandardTab è true, sposta il focus 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 sulla prima cella del controllo, sposta lo stato attivo sul controllo precedente nella sequenza di tabulazione del contenitore padre.
Ctrl + freccia Porta il focus sulla cella più lontana nella direzione della freccia.
CTRL + Home Sposta il focus sulla prima cella del controllo.
CTRL + Fine Sposta il focus sull'ultima cella del controllo.
Ctrl + Pagina giù/su Uguale a Pagina giù o Pagina su.
F2 Inserisce la cella corrente in modalità di modifica della cella se il valore della EditMode proprietà è EditOnF2 o EditOnKeystrokeOrF2.
F3 Ordina la colonna corrente se il valore della DataGridViewColumn.SortMode proprietà è Automatic. È lo stesso che fare clic sull'intestazione della colonna corrente. Disponibile a partire da .NET Framework 4.7.2. Per abilitare questa funzionalità, le applicazioni devono avere come destinazione .NET Framework 4.7.2 o versioni successive o acconsentire esplicitamente ai miglioramenti dell'accessibilità usando le opzioni AppContext.
F4 Se la cella corrente è DataGridViewComboBoxCell, la cella viene impostata in modalità di modifica e viene visualizzato l'elenco a discesa.
Alt + Freccia SU/GIÙ Se la cella corrente è DataGridViewComboBoxCell, la cella viene impostata in modalità di modifica e viene visualizzato l'elenco a discesa.
Alt + Freccia sinistra/destra Aumenta o riduce la larghezza della colonna della cella attuale.
Spazio Se la cella corrente è un DataGridViewButtonCell, un DataGridViewLinkCell o un DataGridViewCheckBoxCell, genera gli eventi CellClick e CellContentClick. Se la cella corrente è un DataGridViewButtonCell, preme anche il pulsante. Se la cella corrente è un oggetto DataGridViewCheckBoxCell, cambia anche lo stato di controllo.
Immettere Applica le modifiche alla cella e alla riga correnti e sposta l'attenzione sulla cella immediatamente sotto quella corrente. Se il cursore si trova nell'ultima riga, applica eventuali modifiche senza spostarlo.
ESC Se il controllo è in modalità di modifica, annulla la modifica. Se il controllo non è in modalità di modifica, ripristina tutte le modifiche apportate alla riga corrente se il controllo è associato a un'origine dati che supporta la modifica o la modalità virtuale è stata implementata con ambito di commit a livello di riga.
Backspace Elimina il carattere prima del punto di inserimento durante la modifica di una cella.
Elimina Elimina il carattere dopo il punto di inserimento durante la modifica di una cella.
CTRL + INVIO Esegue il commit delle modifiche apportate alla cella corrente senza spostare il focus. Conferma inoltre le modifiche apportate alla riga corrente se il controllo è associato a un'origine dati che supporta la modifica o se la modalità virtuale è stata implementata con un ambito di conferma a livello di riga.
CTRL + 0 Immette un DBNull.Value valore nella cella corrente se la cella può essere modificata. Per impostazione predefinita, il valore visualizzato del valore di una cella DBNull è il valore della proprietà NullValue applicata dalla DataGridViewCellStyle per la cella corrente.

Tasti di selezione

Se la MultiSelect proprietà è impostata su false e la SelectionMode proprietà è impostata su CellSelect, la modifica della cella corrente tramite i tasti di spostamento modifica la selezione nella nuova cella. I tasti MAIUSC, CTRL e ALT non influiscono su questo comportamento.

SelectionMode Se è impostato su RowHeaderSelect o ColumnHeaderSelect, si verifica lo stesso comportamento, ma con le aggiunte seguenti.

Chiave o combinazione di tasti Descrizione
Spostare + Barra spaziatrice Seleziona la riga o la colonna completa (uguale a fare clic sull'intestazione di riga o colonna).
tasto di spostamento (tasto freccia, pagina su/giù, Home, Fine) Se è selezionata una riga o una colonna completa, la modifica della cella corrente in una nuova riga o colonna sposta la selezione nella nuova riga o colonna completa ,a seconda della modalità di selezione.

Se MultiSelect è impostato su false e SelectionMode è impostato su FullRowSelect o FullColumnSelect, se si modifica la cella corrente a una nuova riga o colonna tramite la tastiera, la selezione viene spostata nella nuova riga o colonna completa. I tasti MAIUSC, CTRL e ALT non influiscono su questo comportamento.

Se MultiSelect è impostato su true, il comportamento di spostamento non cambia, ma lo spostamento con la tastiera mentre si preme MAIUSC (incluso CTRL + MAIUSC) modificherà una selezione a più celle. Prima dell'inizio della navigazione, il controllo contrassegna la cella corrente come cella di ancoraggio. Quando si naviga premendo MAIUSC, la selezione include tutte le celle tra la cella di partenza e la cella corrente. Le altre celle del controllo rimarranno selezionate se sono già selezionate, ma potrebbero diventare deselezionate se lo spostamento tramite tastiera li inserisce temporaneamente tra la cella di ancoraggio e la cella corrente.

Se MultiSelect è impostato su true e SelectionMode è impostato su FullRowSelect o FullColumnSelect, il comportamento della cella di ancoraggio e della cella corrente è lo stesso, ma solo le righe o le colonne complete vengono selezionate o deselezionate.

Gestione predefinita del mouse

Gestione del mouse di base

Annotazioni

Facendo clic su una cella con il pulsante sinistro del mouse viene sempre modificata la cella corrente. Facendo clic su una cella con il pulsante destro del mouse si apre un menu di scelta rapida, quando ne è disponibile uno.

Azione del mouse Descrizione
Pulsante sinistro del mouse verso il basso Rende la cella selezionata la cella corrente e genera l'evento DataGridView.CellMouseDown .
Rilasciare il pulsante sinistro del mouse Genera l'evento DataGridView.CellMouseUp
Fare clic sul pulsante sinistro del mouse Genera gli eventi DataGridView.CellClick e DataGridView.CellMouseClick
Premi il pulsante sinistro del mouse e trascina su una cella dell'intestazione della colonna Se la DataGridView.AllowUserToOrderColumns proprietà è true, sposta la colonna in modo che possa essere posizionata in una nuova posizione.

Selezione del mouse

Nessun comportamento di selezione è associato al pulsante centrale del mouse o alla rotellina del mouse.

Se la MultiSelect proprietà è impostata su false e la SelectionMode proprietà è impostata su CellSelect, si verifica il comportamento seguente.

Azione del mouse Descrizione
Fai clic Seleziona solo la cella corrente se l'utente fa clic su una cella. Nessun comportamento di selezione se l'utente fa clic su un'intestazione di riga o di colonna.
Fare clic con il pulsante destro del mouse su Visualizza un menu di scelta rapida, se disponibile.

Lo stesso comportamento si verifica quando SelectionMode è impostato su RowHeaderSelect o ColumnHeaderSelect, ad eccezione del fatto che, a seconda della modalità di selezione, facendo clic su una riga o un'intestazione di colonna verrà selezionata la riga o la colonna completa e la cella corrente verrà impostata sulla prima cella della riga o della colonna.

Se SelectionMode è impostato su FullRowSelect o FullColumnSelect, facendo clic su una cella in una riga o colonna verrà selezionata la riga o la colonna completa.

Se MultiSelect è impostato su true, facendo clic su una cella premendo CTRL o MAIUSC verrà modificata una selezione a più celle.

Quando si fa clic su una cella premendo CTRL, la cella cambia lo stato di selezione mentre tutte le altre celle mantengono lo stato di selezione corrente.

Quando si fa clic su una cella o su una serie di celle premendo MAIUSC, la selezione include tutte le celle tra la cella corrente e una cella di ancoraggio che si trova nella posizione della cella corrente prima del primo clic. Quando si fa clic e si trascina il puntatore su più celle, la cella di ancoraggio viene selezionata all'inizio dell'operazione di trascinamento. I clic successivi mentre si preme Shift modificano la cella corrente, ma non la cella di ancoraggio. Le altre celle del controllo rimarranno selezionate se sono già state selezionate, ma potrebbero diventare deselezionate se lo spostamento del mouse li inserisce temporaneamente tra la cella di ancoraggio e la cella corrente.

Se MultiSelect è impostato su e true è impostato SelectionMode su RowHeaderSelect o ColumnHeaderSelect, facendo clic su una riga o un'intestazione di colonna (a seconda della modalità di selezione) mentre si preme MAIUSC verrà modificata una selezione esistente di righe o colonne complete, se tale selezione esiste. In caso contrario, cancella la selezione e avvia una nuova selezione di righe o colonne complete. Se si fa clic su un'intestazione di riga o colonna premendo CTRL, tuttavia, si aggiunge o si rimuove la riga o la colonna selezionata dalla selezione corrente senza modificare altrimenti la selezione corrente.

Se MultiSelect è impostato su true e SelectionMode è impostato su FullRowSelect o FullColumnSelect, facendo clic su una cella premendo MAIUSC o CTRL si comporta allo stesso modo, ad eccezione del fatto che solo le righe e le colonne complete sono interessate.

Vedere anche