ho provato a parte che ho dovuto aggiungere un altro indice come riferimento alla cella..Originariamente inviato da alpynet
Ciao, in alternativa potresti usare questo:
codice:Dim RigaArray As DataGridViewCellCollection = TabellaGrid.rows(0).Cells MessageBox.Show(RigaArray(0).Value)![]()
MessageBox.Show(RigaArray(0).Value(0))
non è proprio quello che intendevo fare...quello postato, strutturalmente non è che cambi molto dalla normale chiamata alla singola cella..![]()
invece sto valutanto il suggerimento di ripiegare a una funzione che mi ritorna un array di valori delle celle di una determinata riga di qualsiasi tabella (di tipo datagridviewrow), passata come parametro...
come si può cambiare la struttura di questa function per avere tempi di elaborazione bassi ove sono richieste chiamate multiple?
ps. ho inserito un controllo per eventuali righe Nothing (vedi CurrentRow) restituendo Nothing (in quel caso preferisco sia così)..
per esempio viene chiamata così:codice:Function GetRowValues(ByRef Row As DataGridViewRow) As Object ' se la riga di riferimento è su Nothing, restituisce Nothing If IsNothing(Row) Then Return Nothing ' dichiaro un nuovo arraylist Dim RigaValues As New ArrayList ' ciclo tutte le celle delle riga For Each Cella As DataGridViewCell In Row.Cells ' aggiungo un nuovo elemento all'ArrayList con il valore cella RigaValues.Add(Cella.Value) Next Cella ' restituisco il contenuto ArrayList convertito in Array Return RigaValues.ToArray End Function
oppure in un ciclo per tutte le righe della tabella.codice:Dim RigaArray As System.Array = GetRowValues(TabellaGrid.CurrentRow)
l'importante che la funzione restituisca un Array di elementi Object che si setteranno in automatico in base al tipo della cella in Datagridview.. (es..tipi data, testo, nothing, etc..)codice:Dim ListaVet As New ArrayList For Each RigaTabella As DataGridViewRow In ElencoDataGridView.Rows ListaVet.Add(GetRowValues(RigaTabella)) Next

Rispondi quotando