2009-12-31 15 views
5

Ho cercato di trovare il modo di selezionare tutte le celle in una colonna con un 'tasto destro del mouse + Menu + Selezionare questa colonna' ...DataGridView: come selezionare un'intera colonna e deselezionare tutto il resto?

MSDN non aiuta molto ...

ottengo questo errore quando provo a cambiare modalità di selezione:

DataGridView control's SelectionMode cannot be set to FullColumnSelect while it has a column with SortMode set to DataGridViewColumnSortMode.Automatic. 

Grazie, Y_Y

+0

Suppongo tu stia utilizzando WinForms? – SLaks

+0

Sì, sto usando winforms ... –

+0

Qual è il SelectionMode di DataGridView? – SLaks

risposta

4

loop attraverso le celle della colonna e impostare le proprietà Selected su true.
Sembra orribile, ma credo che sia l'unico modo per selezionare un'intera colonna e mantenere l'ordinamento automatico.

Ad esempio:

grid.ClearSelection(); 
for(int r = 0; r < grid.RowCount; r++) 
    grid[columnIndex, r].Selected = true; 
+0

Nop ... grid.ClearSelection(); funziona, ma la seconda riga non ... –

+0

Come posso eliminare l'ordinamento automatico? –

+0

Imposta la proprietà 'SortMode' su' false', come nella risposta di David. – SLaks

9

dispiace sia voluto tanto tempo - ho voluto mettere alla prova prima di rispondere, così mi lasciai questo in Visual Studio per testare prima.

ho dovuto fare questo in miniera per farlo funzionare:

foreach (DataGridViewColumn c in dataGridView1.Columns) 
{ 
    c.SortMode = DataGridViewColumnSortMode.NotSortable; 
    c.Selected = false; 
} 
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullColumnSelect; 
dataGridView1.Columns[0].Selected = true; 
+0

È inoltre possibile chiamare il metodo 'ClearSelection'. – SLaks

+0

Devo eseguire quel ciclo ogni volta che voglio selezionare una colonna? o è in orario? –

+0

Fintanto che nient'altro cambia 'SortMode', devi farlo una volta sola. – SLaks

1

avete bisogno di 3 cose.

  1. Cancella tutte le righe e le celle selezionate.
  2. Rimuovi la modalità di ordinamento di ogni colonna su Non ordinabile. L'evento di clic predefinito è ordinamento, ora sarà selezionato.
  3. Imposta la modalità di selezione su colonna.

Infine è possibile selezionare la prima colonna per mostrare all'utente la modalità di selezione. Questo deve essere fatto solo una volta. La prima volta che carichi il tuo modulo o il tuo datagridview.

// Clear all selected cells or rows in the DGV. 
dataGridView1.ClearSelection(); 

// Make every column not sortable. 
for (int i=0; i < dataGridView1.Columns.Count; i++) 
    dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable; 

// Set selection mode to Column. 
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullColumnSelect; 

// In case you want the first column selected. 
if (dataGridView1.Columns.Count > 0) // Check if you have at least one column. 
    dataGridView1.Columns[0].Selected = true; 
Problemi correlati