Modalità di selezione nel controllo DataGridView Windows FormSelection Modes in the Windows Forms DataGridView Control

Talvolta si desidera l'applicazione per eseguire azioni in base alle selezioni dell'utente all'interno di un DataGridView controllo.Sometimes you want your application to perform actions based on user selections within a DataGridView control. A seconda delle azioni, si desidera limitare i tipi di selezione che sono possibili.Depending on the actions, you may want to restrict the kinds of selection that are possible. Si supponga, ad esempio, che l'applicazione è possibile stampare un report per il record attualmente selezionato.For example, suppose your application can print a report for the currently selected record. In questo caso, si desidera configurare il DataGridView controllo in modo che facendo clic in un punto qualsiasi all'interno di una riga sempre selezionata l'intera riga, e che sia possibile selezionare solo una riga alla volta.In this case, you may want to configure the DataGridView control so that clicking anywhere within a row always selects the entire row, and so that only one row at a time can be selected.

È possibile specificare le selezioni, è possibile impostare il DataGridView.SelectionMode proprietà su uno dei seguenti DataGridViewSelectionMode valori di enumerazione.You can specify the selections allowed by setting the DataGridView.SelectionMode property to one of the following DataGridViewSelectionMode enumeration values.

Valore di DataGridViewSelectionModeDataGridViewSelectionMode value DescrizioneDescription
CellSelect Fare clic su una cella viene selezionata.Clicking a cell selects it. Intestazioni di riga e colonna non possono essere utilizzate per la selezione.Row and column headers cannot be used for selection.
ColumnHeaderSelect Fare clic su una cella viene selezionata.Clicking a cell selects it. Fare clic su un'intestazione di colonna consente di selezionare l'intera colonna.Clicking a column header selects the entire column. Le intestazioni di colonna non possono essere utilizzate per l'ordinamento.Column headers cannot be used for sorting.
FullColumnSelect Facendo clic su una cella o un'intestazione di colonna consente di selezionare l'intera colonna.Clicking a cell or a column header selects the entire column. Le intestazioni di colonna non possono essere utilizzate per l'ordinamento.Column headers cannot be used for sorting.
FullRowSelect Facendo clic su una cella o un'intestazione di riga seleziona l'intera riga.Clicking a cell or a row header selects the entire row.
RowHeaderSelect Modalità di selezione predefinita.Default selection mode. Fare clic su una cella viene selezionata.Clicking a cell selects it. Fare clic su un'intestazione di riga selezionare l'intera riga.Clicking a row header selects the entire row.

Nota

Modifica la modalità di selezione in fase di esecuzione automatica Cancella la selezione corrente.Changing the selection mode at run time automatically clears the current selection.

Per impostazione predefinita, gli utenti possono selezionare più righe, colonne o celle mediante il trascinamento con il mouse, tenendo premuto CTRL o MAIUSC durante la selezione per estendere o modificare una selezione o facendo clic sulla cella di intestazione in alto a sinistra per selezionare tutte le celle nel controllo.By default, users can select multiple rows, columns, or cells by dragging with the mouse, pressing CTRL or SHIFT while selecting to extend or modify a selection, or clicking the top-left header cell to select all cells in the control. Per evitare questo comportamento, impostare il MultiSelect proprietà false.To prevent this behavior, set the MultiSelect property to false.

Il FullRowSelect e RowHeaderSelect modalità consentire agli utenti di eliminare righe selezionandoli e premendo CANC.The FullRowSelect and RowHeaderSelect modes allow users to delete rows by selecting them and pressing the DELETE key. Gli utenti possono eliminare righe solo quando la cella corrente non è in modalità di modifica di AllowUserToDeleteRows è impostata su true, e l'origine dati sottostante supporta l'eliminazione di righe dall'utente.Users can delete rows only when the current cell is not in edit mode, the AllowUserToDeleteRows property is set to true, and the underlying data source supports user-driven row deletion. Si noti che queste impostazioni non impediscono l'eliminazione di righe a livello di codice.Note that these settings do not prevent programmatic row deletion.

Selezione a livello di codiceProgrammatic Selection

La modalità di selezione corrente limita il comportamento di selezione a livello di codice, nonché di selezione dell'utente.The current selection mode restricts the behavior of programmatic selection as well as user selection. È possibile modificare la selezione corrente a livello di codice impostando la Selected proprietà di tutte le celle, righe o colonne presenti nella DataGridView controllo.You can change the current selection programmatically by setting the Selected property of any cells, rows, or columns present in the DataGridView control. È inoltre possibile selezionare tutte le celle nel controllo tramite il SelectAll (metodo), a seconda della modalità di selezione.You can also select all cells in the control through the SelectAll method, depending on the selection mode. Per cancellare la selezione, usare il ClearSelection metodo.To clear the selection, use the ClearSelection method.

Se il MultiSelect è impostata su true, è possibile aggiungere DataGridView elementi o rimuoverli dalla selezione modificando la Selected proprietà dell'elemento.If the MultiSelect property is set to true, you can add DataGridView elements to or remove them from the selection by changing the Selected property of the element. In caso contrario, l'impostazione di Selected proprietà true per un elemento altri elementi vengono rimossi automaticamente dalla selezione.Otherwise, setting the Selected property to true for one element automatically removes other elements from the selection.

Si noti che il valore della modifica di CurrentCell proprietà non modifica la selezione corrente.Note that changing the value of the CurrentCell property does not alter the current selection.

È possibile recuperare una raccolta delle celle attualmente selezionate, righe o colonne tramite il SelectedCells, SelectedRows, e SelectedColumns le proprietà del DataGridView controllo.You can retrieve a collection of the currently selected cells, rows, or columns through the SelectedCells, SelectedRows, and SelectedColumns properties of the DataGridView control. L'accesso a queste proprietà è inefficiente se ogni cella nel controllo è selezionata.Accessing these properties is inefficient when every cell in the control is selected. Per evitare una riduzione delle prestazioni in questo caso, utilizzare il AreAllCellsSelected metodo prima.To avoid a performance penalty in this case, use the AreAllCellsSelected method first. Inoltre, l'accesso a queste raccolte per determinare il numero di celle, righe o colonne possono risultare inefficiente.Additionally, accessing these collections to determine the number of selected cells, rows, or columns can be inefficient. Utilizzare invece il GetCellCount, GetRowCount, o GetColumnCount metodo passando la Selected valore.Instead, you should use the GetCellCount, GetRowCount, or GetColumnCount method, passing in the Selected value.

Suggerimento

Codice di esempio che illustra l'uso delle celle selezionate a livello di codice, vedere il DataGridView Cenni preliminari sulla classe.Example code that demonstrates the programmatic use of selected cells can be found in the DataGridView class overview.

Vedere ancheSee Also

DataGridView
MultiSelect
SelectionMode
DataGridViewSelectionMode
Uso della selezione e degli Appunti con il controllo DataGridView di Windows FormSelection and Clipboard Use with the Windows Forms DataGridView Control
Procedura: Impostare la modalità di selezione del controllo DataGridView di Windows FormHow to: Set the Selection Mode of the Windows Forms DataGridView Control