PDA

View Full Version : [Vb.Net]Non riesco a farmi restituire un valore


RaouL_BennetH
16-07-2008, 13:06
Ciao a tutti :)

Allora:



Function GetCellDoubleValue(ByVal i as Integer) As Double
dim d as double = 0.0

for each r as datagridviewrow in mygrid.rows

if not isnothing(r.cells(i).value) then
d = r.cells(i).value
return d

next



Ora, supponiamo che io abbia una griglia con 20 righe, con quella funzione mi restituisce solo il valore della prima cella, per esempio se:



'click

GetCellDoubleValue(5)



se nella cella 5 c'è il valore 2,75 della prima riga me lo restituisce

poi, se nella cella 5 della seconda riga c'è il valore 4,59, mi da sempre 2,75.

Dove sbaglio?

Grazie :)

RaouL.

^TiGeRShArK^
16-07-2008, 13:26
:mbe:
e qual'è il problema? :stordita:
per come hai scritto il codice ti restituisce il primo valore della griglia che non è null...
non è questo che vuoi? :fagiano:

RaouL_BennetH
16-07-2008, 13:33
:mbe:
e qual'è il problema? :stordita:
per come hai scritto il codice ti restituisce il primo valore della griglia che non è null...
non è questo che vuoi? :fagiano:

Eh no :fagiano:

mi deve restituire il valore di quella cella per ciascuna riga della griglia (se non è nullo ovviamente)

cioè:

1 Riga Cella5 = 15,76
2 Riga Cella5 =
3 Riga Cella5 = 7,9

Mi aspettavo di avere 15,76 e 7,9 e non due volte 15,76 :(

^TiGeRShArK^
16-07-2008, 13:41
mmm..
non può funzionare così allora :p
o ti fai ritornare un'array o una lista contenente i valori di tutte le celle i-esime oppure passi oltre all'indice della colonna anche quello della riga...

RaouL_BennetH
16-07-2008, 14:20
mmm..
non può funzionare così allora :p
o ti fai ritornare un'array o una lista contenente i valori di tutte le celle i-esime oppure passi oltre all'indice della colonna anche quello della riga...

uhm scusami ma non riesco a capire:

Perchè dovrebbe ritornarmi un solo valore se io all'interno della funzione ciclo per tutte le righe della griglia?

^TiGeRShArK^
16-07-2008, 14:24
perchè fai un return del primo valore non nullo ed esci dal metodo restituendo quello... :fagiano:

RaouL_BennetH
16-07-2008, 15:08
perchè fai un return del primo valore non nullo ed esci dal metodo restituendo quello... :fagiano:

:doh:

anyway:



Function TestCellValue(ByVal columnIndex as Integer, rowIndex as Integer) As Double

If Not IsNothing(grid(columnIndex, rowIndex).Value) Then
Dim d as Double = grid(columnIndex, rowIndex).Value
Return d
End If

End Function

'poi dalla classe:

For i As Integer = 0 To dgvDip.Rows.Count - 1

TestCellValue(5, i)

Next

'blabla



La dritta sul passaggio di colonna e riga è stata fondamentale :D

Grazie mille .

RaouL.