Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: knife85 en 16 de Octubre 2020, 00:21

Título: System.ArgumentOutOfRangeException Visual Basic pasar de datagridview a label
Publicado por: knife85 en 16 de Octubre 2020, 00:21
Buenas, tengo el siguiente código:
 
Código: [Seleccionar]
form1.Label1.Text = Me.DataGridView1.Rows(0).Cells(0).Value
Este codigo funciona perfecto. El problema es el siguiente: el datagridview se llena manualmente por lo cual puede quedar vacío y eso me genera un error.

Citar
System.ArgumentOutOfRangeException: 'El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.
Nombre del parámetro: index'

se me ocurrio ponerle un IF

Código: [Seleccionar]
If DataGridView1.Rows(0).Cells(0).Value = "" Then

        Else
            form1.Label1.Text = Me.DataGridView1.Rows(0).Cells(0).Value
        End If

Pero.... tambien falla
alguna idea??
desde ya muchas gracias, hoy descubri el foro y estoy muy feliz
Título: Re:Visual Basic, pasar de un datagridview a un label en otro formulario
Publicado por: knife85 en 19 de Octubre 2020, 17:35
Se me ocurrio ponerlo con IF NOT

Código: [Seleccionar]
 
If Not DataGridView1.Rows(0).Cells(0).Value =  Then

            frm_imprimir.Label11.Text = Me.DataGridView1.Rows(0).Cells(0).Value

        End If
Y tampoco anda

creo que el error puede venir por este lado
es un datagridview que se llena manualmente
por lo cual la fila no existe hasta que no agrego.
No se como decirle "si no existe la fila 0" no hagas nada

el error que recivo es el siguiente
Citar
System.ArgumentOutOfRangeException: 'El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.
Nombre del parámetro: index'
Título: Re:Visual Basic, pasar de un datagridview a un label en otro formulario
Publicado por: knife85 en 21 de Octubre 2020, 20:52
Listo
Solucionado
hago que primero cheque que haya X cantidad de líneas antes de proceder con el código

Código: [Seleccionar]
If DataGridView1.Rows.Count >= 1 Then
            frm_imprimir.Label11.Text = Me.DataGridView1.Rows(0).Cells(0).Value
   End If

  If DataGridView1.Rows.Count >= 2 Then

            frm_imprimir.Label25.Text = Me.DataGridView1.Rows(1).Cells(0).Value
   End If
y así sucesivamente para todas las filas
Título: Re:System.ArgumentOutOfRangeException Visual Basic pasar de datagridview a label
Publicado por: Ogramar en 22 de Octubre 2020, 09:55
Gracias por exponer la solución, es posible que le sirva de ayuda a otras personas. Salu2