Autor Tema: System.ArgumentOutOfRangeException Visual Basic pasar de datagridview a label  (Leído 3841 veces)

knife85

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
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
« Última modificación: 22 de Octubre 2020, 09:53 por Ogramar »

knife85

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Re:Visual Basic, pasar de un datagridview a un label en otro formulario
« Respuesta #1 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'

knife85

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Re:Visual Basic, pasar de un datagridview a un label en otro formulario
« Respuesta #2 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

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Gracias por exponer la solución, es posible que le sirva de ayuda a otras personas. Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".