DataGridView Riempimento Strano

di il
3 risposte

DataGridView Riempimento Strano

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

3 Risposte

  • Re: DataGridView Riempimento Strano

    Se elimino l'If tutto funziona perfettamente con 5 righe (su 4 records) riempite nell'ordine giusto con però l'ultima riga vuota.
    E non puoi fare un unico add(3) prima del for?
  • Re: DataGridView Riempimento Strano

    In effetti se prima del For faccio : .Rows.Add(DT.Rows.Count - 1) funziona come volevo io ... ti ringrazio !!
    Ma sinceramente non capisco perché in altro modo non andava ... ma va bene così ...
    Grazie ancora ...
  • Re: DataGridView Riempimento Strano

    libfrank2017 ha scritto:


    Ma sinceramente non capisco perché in altro modo non andava ...
    Se leggi la documentazione di DataGridViewRowCollection.Add c'è scritto che l'ordine non è preservato durante l'inserimento. Evidentemente inserisce in cima, nell'altro caso, e la riga che imposti viene spostata in coda
Devi accedere o registrarti per scrivere nel forum
3 risposte