none
Sumar valores en un ListView RRS feed

  • Pregunta

  • Buena tarde compañeros, tengo un problema a la hora de sumar unos valores del ListView, así tengo el programa

    Private Sub Suma()
            Dim suma As Double
            Dim i As Integer
            For i = 1 To ListV.Items.Count
                suma = suma + CInt(ListV.Items(i).SubItems(1).Text)
            Next
            TextValor.Text = suma
    End Sub

    An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in System.Windows.Forms.dll

    Additional information: InvalidArgument=El valor de '1' no es válido para 'index'.

    domingo, 14 de febrero de 2016 23:44

Respuestas

  • A la hora de recorrer los elementos de una colección el primer elemento tiene índice 0:

    Private Sub Suma()
             Dim suma As Double
             Dim i As Integer
             For i = 0 To ListV.Items.Count - 1
                 suma = suma + CInt(ListV.Items(i).SubItems(1).Text)
             Next
             TextValor.Text = suma
     End Sub

    Eso si lo que deseas es obtener el texto del segundo SubItem de cada elemento, si lo que quieres es coger el del primero el índice de SubItems debería ser también 0.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    domingo, 14 de febrero de 2016 23:48

Todas las respuestas

  • A la hora de recorrer los elementos de una colección el primer elemento tiene índice 0:

    Private Sub Suma()
             Dim suma As Double
             Dim i As Integer
             For i = 0 To ListV.Items.Count - 1
                 suma = suma + CInt(ListV.Items(i).SubItems(1).Text)
             Next
             TextValor.Text = suma
     End Sub

    Eso si lo que deseas es obtener el texto del segundo SubItem de cada elemento, si lo que quieres es coger el del primero el índice de SubItems debería ser también 0.


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    domingo, 14 de febrero de 2016 23:48
  • Cambie el valor a 0 así:

    Private Sub Suma()
            Dim suma As Double
            Dim i As Integer
            suma = 0
            For i = 1 To ListV.Items.Count
                suma = suma + CDbl(ListV.Items(i).SubItems(0).Text)
            Next
            TextValor.Text = suma
        End Sub

    Y me sale el siguiente error:

    An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in System.Windows.Forms.dll

    Additional information: InvalidArgument=El valor de '2' no es válido para 'index'.

    domingo, 14 de febrero de 2016 23:51
  • Listo ya lo solucione con esto:

     Private Sub Suma()
            Dim suma As Double
            Dim i As Integer
            suma = 0
            For i = 0 To ListV.Items.Count - 1
                suma = suma + CDbl(ListV.Items(i).SubItems(0).Text)
            Next
            TextValor.Text = suma
        End Sub

    Muchas gracias por su colaboración

    domingo, 14 de febrero de 2016 23:53