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.
Nota
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
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, non esegue alcuna operazione. |
Freccia SINISTRA | Sposta lo stato attivo 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 in su | Sposta lo stato attivo sulla cella direttamente sopra la cella corrente. Se lo stato attivo si trova nella prima riga, non esegue alcuna operazione. |
Home | Sposta lo stato attivo sulla prima cella della riga corrente. |
Fine | Sposta lo stato attivo sull'ultima cella della riga corrente. |
Pagina verso il basso | 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. |
Pagina su | Scorre il controllo verso l'alto in base al numero di righe completamente visualizzate. Sposta lo stato attivo sulla prima riga visualizzata senza modificare le colonne. |
Tab | Se il valore della StandardTab proprietà è false , sposta lo stato attivo sulla cella successiva nella riga corrente. Se lo stato attivo si trova già 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 il valore della StandardTab proprietà è true , sposta lo stato attivo sul controllo successivo nell'ordine di tabulazione del contenitore padre. |
MAIUSC + Tab | Se il valore della StandardTab proprietà è false , 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 il valore della StandardTab proprietà è true , sposta lo stato attivo sul controllo precedente nell'ordine 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 lo stato attivo sulla cella successiva nella riga corrente. Se lo stato attivo si trova già 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. |
CTRL + MAIUSC + TAB | Se il valore della StandardTab proprietà è false , sposta lo stato attivo sul controllo precedente nell'ordine di tabulazione del contenitore padre.Se il valore della StandardTab proprietà è true , 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. |
Freccia CTRL + | Sposta lo stato attivo sulla cella più lontana nella direzione della freccia. |
CTRL + Home | Sposta lo stato attivo sulla prima cella del controllo. |
CTRL + Fine | Sposta lo stato attivo 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. Equivale a fare clic sull'intestazione di 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 è , DataGridViewComboBoxCellimposta la cella in modalità di modifica e visualizza l'elenco a discesa. |
Alt freccia + su/giù | Se la cella corrente è , DataGridViewComboBoxCellimposta la cella in modalità di modifica e visualizza l'elenco a discesa. |
Alt + freccia sinistra/destra | Aumenta o riduce la larghezza della colonna della cella corrente. |
Space | Se la cella corrente è , DataGridViewButtonCellDataGridViewLinkCello DataGridViewCheckBoxCell, genera gli CellClick eventi e CellContentClick . Se la cella corrente è un oggetto DataGridViewButtonCell, preme anche il pulsante. Se la cella corrente è un oggetto DataGridViewCheckBoxCell, cambia anche lo stato di controllo. |
Immettere | 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. 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. |
CANC | 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 lo stato attivo. Esegue inoltre il commit delle modifiche apportate alla riga corrente se il controllo è associato a un'origine dati che supporta la modifica o la modalità virtuale è stata implementata con l'ambito di commit 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 per un DBNull valore di cella è il valore della NullValue proprietà dell'oggetto DataGridViewCellStyle in vigore 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.
Tasto o della combinazione | Descrizione |
---|---|
MAIUSC + 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 e SelectionMode è impostato false
su FullRowSelect o FullColumnSelect, la modifica della cella corrente in una nuova riga o colonna tramite la tastiera sposta la selezione 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 passa premendo MAIUSC, la selezione include tutte le celle tra la cella di ancoraggio 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 e SelectionMode è impostato true
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
Nota
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 . |
Pulsante sinistro del mouse verso l'alto | Genera l'evento DataGridView.CellMouseUp. |
Fare clic sul pulsante sinistro del mouse | Genera gli DataGridView.CellClick eventi e DataGridView.CellMouseClick |
Pulsante sinistro del mouse verso il basso e trascinamento su una cella di intestazione di colonna | Se la DataGridView.AllowUserToOrderColumns proprietà è true , sposta la colonna in modo che possa essere eliminata 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 |
---|---|
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 MAIUSC 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 SelectionMode è impostato true
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 e SelectionMode è impostato true
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.
Vedi anche
.NET Desktop feedback