Modalità di selezione nel controllo DataGridView Windows Form

A volte si vuole che l'applicazione esegua azioni in base alle selezioni utente all'interno di un DataGridView controllo. A seconda delle azioni, è possibile limitare i tipi di selezione possibili. Si supponga, ad esempio, che l'applicazione possa stampare un report per il record attualmente selezionato. In questo caso, è possibile configurare il DataGridView controllo in modo che facendo clic in un punto qualsiasi all'interno di una riga selezioni sempre l'intera riga e in modo che sia possibile selezionare una sola riga alla volta.

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

Valore DataGridViewSelectionMode Descrizione
CellSelect Facendo clic su una cella viene selezionata. Impossibile utilizzare le intestazioni di riga e di colonna per la selezione.
ColumnHeaderSelect Facendo clic su una cella viene selezionata. Facendo clic su un'intestazione di colonna viene selezionata l'intera colonna. Impossibile utilizzare le intestazioni di colonna per l'ordinamento.
FullColumnSelect Facendo clic su una cella o un'intestazione di colonna, viene selezionata l'intera colonna. Impossibile utilizzare le intestazioni di colonna per l'ordinamento.
FullRowSelect Facendo clic su una cella o un'intestazione di riga, viene selezionata l'intera riga.
RowHeaderSelect Modalità di selezione predefinita. Facendo clic su una cella viene selezionata. Facendo clic su un'intestazione di riga viene selezionata l'intera riga.

Nota

La modifica della modalità di selezione in fase di esecuzione cancella automaticamente la selezione corrente.

Per impostazione predefinita, gli utenti possono selezionare più righe, colonne o celle trascinando con il mouse, premendo CTRL o MAIUSC mentre si seleziona per estendere o modificare una selezione oppure facendo clic sulla cella di intestazione superiore sinistra per selezionare tutte le celle del controllo. Per evitare questo comportamento, impostare la MultiSelect proprietà su false.

Le FullRowSelect modalità e RowHeaderSelect consentono agli utenti di eliminare le righe selezionandole e premendo il tasto DELETE. Gli utenti possono eliminare righe solo quando la cella corrente non è in modalità di modifica, la AllowUserToDeleteRows proprietà è impostata su truee l'origine dati sottostante supporta l'eliminazione delle righe guidata dall'utente. Si noti che queste impostazioni 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 e della selezione dell'utente. È possibile modificare la selezione corrente a livello di codice impostando la Selected proprietà di qualsiasi cella, riga o colonna presente nel DataGridView controllo . È anche possibile selezionare tutte le celle nel controllo tramite il SelectAll metodo , a seconda della modalità di selezione. Per cancellare la selezione, usare il ClearSelection metodo .

Se la MultiSelect proprietà è impostata su true, è possibile aggiungere DataGridView o rimuovere elementi dalla selezione modificando la Selected proprietà dell'elemento . In caso contrario, l'impostazione della Selected proprietà su true per un elemento rimuove automaticamente altri elementi dalla selezione.

Si noti che la modifica del valore della CurrentCell proprietà non modifica la selezione corrente.

È possibile recuperare una raccolta delle celle, delle righe o delle colonne attualmente selezionate tramite le SelectedCellsproprietà , SelectedRowse SelectedColumns del DataGridView controllo . L'accesso a queste proprietà è inefficiente quando viene selezionata ogni cella del controllo. Per evitare una riduzione delle prestazioni in questo caso, usare prima il AreAllCellsSelected metodo . Inoltre, l'accesso a queste raccolte per determinare il numero di celle, righe o colonne selezionate può risultare inefficiente. È invece consigliabile usare il GetCellCountmetodo , GetRowCounto GetColumnCount passando il Selected valore .

Suggerimento

Il codice di esempio che illustra l'uso programmatico delle celle selezionate è disponibile nella panoramica della DataGridView classe.

Vedi anche