2009-07-06 2 views
6

Ho un datagridview winforms che sembra avere sempre almeno una riga selezionata tutto il tempo. Non sono interessato alla possibilità di selezionare realmente le righe, ho solo bisogno che l'utente sia in grado di selezionare la casella di controllo nella colonna 1. Qualche idea del motivo per cui è sempre selezionata almeno una riga? Come posso evitare questo? influenzerà la possibilità di selezionare la casella di controllo in column1?C# WinForms DataGridView - Selezione riga costante!

Qui di seguito sono le mie impostazioni datagridview:

this.dataGridView1.AllowUserToAddRows = false; 
this.dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True; 
this.dataGridView1.DefaultCellStyle.ForeColor = Color.Black; 
this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; 
this.dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; 
this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; 
this.dataGridView1.MultiSelect = false; 
this.dataGridView1.RowHeadersVisible = false; 
this.dataGridView1.RowsDefaultCellStyle.BackColor = Color.WhiteSmoke; 
this.dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGray; 
this.dataGridView1.ColumnCount = 0; 

colSelect = new DataGridViewCheckBoxColumn(); 
colSelect.HeaderText = "Select Message"; 
colSelect.Width = 90; 
this.dataGridView1.Columns.Insert(0, colSelect); 
this.dataGridView1.Columns[0].DataPropertyName = "msgSelect"; 

risposta

-1

selezionare il datagridview. Quindi, nella finestra delle proprietà, scorrere verso il basso fino a trovare la proprietà SelectionMode e modificarla in FullColumnSelect.

In alternativa, se si desidera loro di selezionare solo una casella di controllo alla volta cambiare a CellSelect

+0

piuttosto sicuro che non è corretto ........ – Goober

+0

Davvero? Il motivo per cui è selezionata una riga è perché è impostata la modalità di selezione! Quindi per smettere di selezionare "una riga" devi cambiarlo ... – Calanus

+1

Non penso che tu abbia capito la domanda Calanus. Vuole sapere come può impedire a DataGridView di selezionare la prima riga nell'elenco per impostazione predefinita. – James

4

Goober, ho riscontrato un problema simile, in cui avevo bisogno di utente per selezionare le righe utilizzando le caselle di controllo. La prima riga viene sempre selezionata per impostazione predefinita dopo che la griglia è stata compilata indipendentemente dalle impostazioni di GridView. Per assicurarsi che la prima riga non è selezionata, ogni volta che il gridview è popolato, fare un clearSelection():

this.dgridvw.DataSource = this.MyTable; 
this.dgridvw.ClearSelection(); 

clearSelection() cancella tutte le righe selezionate.

0

Assicurati di essere NON chiamando il metodo per caricare i dati dal costruttore del modulo. Se si chiama dalla Form.Load()

anche dopo la datagridview viene caricato fare questo

DataGridView.Rows [0] .Selected = false;