AIUTO
Ciao a tutti,
ho una datagridview collegata ad un datatable con questi parametri:
Multiselect = true
SelectionMode = FullRowSelect
utilizzo c#2008 con .net3.5
l'utente può selezionare qualsiasi riga anche più di una...nessun problema.
Se l'utente tramite una form di dataentry inserisce/aggiorna un record, dovrei, alla fine dell'attività, selezionare solo la riga inserita/aggiornata (non è necessariamente l'ultima).
ci provo con le varie select sia a livello di cella che di riga ma non riesco a selezionare a selezionare la riga con il colore blu e spostare il triangolino nero di selezione contemporaneamente
se non setto a false il multiselect aggiunge la linea blu al record scelto
dove sbaglio
this.dataGridView1.MultiSelect = false;
for (int i = 0; i < this.dataGridView1.Rows.Count; i++ )
{
if ((long)this.dataGridView1.Rows[i].Cells["ID"].Value == lng_ID)
{
this.dataGridView1.Rows[i].Selected = true;
this.dataGridView1.Rows[i].Cells["Nome"].Selected = true;
}
}
this.dataGridView1.MultiSelect = true;
grazie
Ho risolto in questo modo:
this.dataGridView1.MultiSelect = false;
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
if ((long)this.dataGridView1.Rows[i].Cells["ID"].Value == lng_ID)
{
this.dataGridView1.Rows[i].Selected = true;
this.dataGridView1.Rows[i].Cells["Nome"].Selected = true;
this.dataGridView1.FirstDisplayedCell = this.dataGridView1.Rows[i].Cells["Nome"];
}
}
this.dataGridView1.MultiSelect = true;
for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
{
if ((long)this.dataGridView1.Rows[i].Cells["ID"].Value == lng_ID)
{
this.dataGridView1.Rows[i].Selected = true;
this.dataGridView1.Rows[i].Cells["Nome"].Selected = true;
this.dataGridView1.FirstDisplayedCell = this.dataGridView1.Rows[i].Cells["Nome"];
}
}
Però non so spiegarmi perchè devo fare due volte lo stesso ciclo uno per con il multiselect ed uno senza
Qualcuno mi spiega il perchè??? Non penso che sia questo il metodo migliore.
Grazie