Salve a tutti ... sto impazzendo su qualche riga di codice ...
Riempio un DataGridView con un ciclo For ... Next e tutto va bene ... però vorrei evitare che il Grid lasci una riga vuota alla fine.
Nel ciclo ho inserito un If ... Se è il primo record che leggo non eseguo la .Rows.Add(1) (così utilizza la riga che già c'è) e la riempio ... altrimenti eseguo .Rows.Add(1) ed aggiungo la riga riempiendola.
Quello che mi succede è che (per esempio 4 records) il Grid si presenta con 4 righe di cui le prime tre vuote e l'ultima riempita correttamente (con l'effettivo ultimo record).
Se elimino l'If tutto funziona perfettamente con 5 righe (su 4 records) riempite nell'ordine giusto con però l'ultima riga vuota.
Il Grid al livello di progettazione ha già la testata fissa e probabilmente questo impone (almeno credo) che il Grid si presenti anche se vuoto con una riga vuota ... non so perché ... ma non vorrei averla.
For RECOUNT = 0 To DT.Rows.Count - 1
If RECOUNT = 0 Then 'And ELENCO.Rows.Count = 1 Then
ELENCO.Rows(RECOUNT).Cells(0).Value = DT.Rows(RECOUNT).Item("CODICE").ToString
ELENCO.Rows(RECOUNT).Cells(1).Value = DT.Rows(RECOUNT).Item("DESCRIZIONE").ToString
Else
ELENCO.Rows.Add(1)
ELENCO.Rows(RECOUNT).Cells(0).Value = DT.Rows(RECOUNT).Item("CODICE").ToString
ELENCO.Rows(RECOUNT).Cells(1).Value = DT.Rows(RECOUNT).Item("DESCRIZIONE").ToString
End If
' ELENCO.Rows.Add(1)
' ELENCO.Rows(RECOUNT).Cells(0).Value = DT.Rows(RECOUNT).Item("CODICE").ToString
' ELENCO.Rows(RECOUNT).Cells(1).Value = DT.Rows(RECOUNT).Item("DESCRIZIONE").ToString
Next
Le ultime tre righe prima del Next non vengono eseguite perchè inserite come commento ... ma togliendo quell'If ed attivando quelle tre righe il tutto funziona perfettamente ... con l'ultima riga vuota però ... specifico che le tre righe sono identiche anche nell'If tranne per la prima condizione che non ha il .Rows.Add(1) ovviamente per quanto detto sopra ...
A presto ... spero ...
Roberto