Condividi tramite


Modalità di selezione nel controllo DataGridView Windows Form

A volte è preferibile che l'applicazione esegua azioni in base alle selezioni effettuate dall'utente all'interno di un controllo DataGridView. A seconda delle azioni, può essere opportuno limitare i tipi di selezione possibili. Si supponga ad esempio che l'applicazione consenta di stampare un report sul record correntemente selezionato. In questo caso, può essere opportuno configurare il controllo DataGridView in modo che, quando si fa clic in qualsiasi punto all'interno di una riga, venga selezionata sempre l'intera riga e sia possibile selezionare solo una riga alla volta.

È possibile specificare le selezioni consentite impostando la proprietà DataGridView.SelectionMode su uno dei seguenti valori dell'enumerazione DataGridViewSelectionMode.

Valore di DataGridViewSelectionMode

Descrizione

CellSelect

La cella viene selezionata con un clic. Per la selezione non possono essere utilizzate le intestazioni di riga e di colonna.

ColumnHeaderSelect

La cella viene selezionata con un clic. L'intera colonna viene selezionata facendo clic sull'intestazione di colonna. Non è possibile utilizzare le intestazioni di colonna per l'ordinamento.

FullColumnSelect

L'intera colonna viene selezionata facendo clic sull'intestazione di colonna o su una cella. Non è possibile utilizzare le intestazioni di colonna per l'ordinamento.

FullRowSelect

L'intera riga viene selezionata facendo clic sull'intestazione di riga o su una cella.

RowHeaderSelect

Modalità di selezione predefinita. La cella viene selezionata con un clic. L'intera riga viene selezionata facendo clic sull'intestazione di riga.

Nota

Se si modifica la modalità di selezione in fase di esecuzione viene automaticamente annullata la selezione corrente.

Per impostazione predefinita, gli utenti possono selezionare più righe, colonne o celle trascinando il mouse e tenendo premuto CTRL o MAIUSC durante la selezione per estendere o modificare una selezione oppure facendo clic sulla cella di intestazione in alto a sinistra per selezionare tutte le celle del controllo. Per impedire questo comportamento, impostare la proprietà MultiSelect su false.

Con le modalità FullRowSelect e RowHeaderSelect è possibile eliminare le righe selezionandole e premendo CANC. Gli utenti possono eliminare righe solo quando la cella corrente non è in modalità di modifica, la proprietà AllowUserToDeleteRows è impostata su true e l'origine dati sottostante supporta l'eliminazione di righe eseguita dagli utenti. Queste impostazioni, tuttavia, non impediscono l'eliminazione di righe a livello di codice.

Selezione a livello di codice

La modalità di selezione corrente limita il comportamento della selezione a livello di codice così come la selezione eseguita dall'utente. È possibile modificare la selezione corrente a livello di codice impostando la proprietà Selected di tutte le celle, le righe o le colonne presenti nel controllo DataGridView. Inoltre è possibile selezionare tutte le celle del controllo attraverso il metodo SelectAll, in base alla modalità di selezione. Per annullare la selezione, utilizzare il metodo ClearSelection.

Se la proprietà MultiSelect è impostata su true, è possibile aggiungere o rimuovere elementi DataGridView dalla selezione modificando la proprietà Selected dell'elemento. Diversamente, se si imposta la proprietà Selected su true di un elemento, gli altri elementi verranno rimossi automaticamente dalla selezione.

La modifica del valore della proprietà CurrentCell non altera la selezione corrente.

È possibile recuperare un insieme delle celle, delle righe o delle colonne correntemente selezionate mediante le proprietà SelectedCells, SelectedRows e SelectedColumns del controllo DataGridView. L'accesso a queste proprietà è inefficace quando ogni cella del controllo è selezionata. Per evitare una lieve riduzione delle prestazioni in questo caso, utilizzare prima il metodo AreAllCellsSelected. Anche l'accesso a questi insiemi per determinare il numero di celle, righe o colonne selezionate può risultare inefficace. Utilizzare invece il metodo GetCellCount, GetRowCount o GetColumnCount e passare il valore Selected.

SuggerimentoSuggerimento

Il codice di esempio in cui viene illustrato l'utilizzo a livello di codice delle celle selezionate è disponibile nei cenni preliminari sulla classe DataGridView.

Vedere anche

Attività

Procedura: impostare la modalità di selezione del controllo DataGridView di Windows Form

Riferimenti

DataGridView

MultiSelect

SelectionMode

DataGridViewSelectionMode

Altre risorse

Utilizzo della selezione e degli Appunti con il controllo DataGridView Windows Form