0

me gustaría si alguien me pudiese ayudar con la siguiente duda. Estoy haciendo un programa de prueba en que hay un textbox en el que se insertan nombres, dichos nombres se deben ir guardando en un array y luego al pulsar otro botón que esos nombres pasen a un listbox.

Cuando ejecuto el programa e intento agregar nombres al array, VS me arroja el error: System.NullReferenceException: 'Referencia a objeto no establecida como instancia de un objeto.'

Creo que el problema puede ser a que no estoy creando una nueva instancia del array Nombre. En c# sería algo como "string[] Nombres = New String[1000]", pero en VB no se como se hace, he buscado informaciones en internet y he probado en traducir de c# a VB y hasta el momento sin éxito. ¿Cual podría ser la solución?

 Public Class Form1
Dim Nombre As String()
Dim Counter As Integer = 0

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles button1.Click
    Counter = Counter + 1
    Nombre(Counter) = textBox1.Text

End Sub

Private Sub button2_Click(sender As Object, e As EventArgs) Handles button2.Click
    For Each A As Integer In Nombre
        ListBox1.Items.Add(Nombre(a))

    Next

End Sub
 End Class

Gracias de antemano.

introducir la descripción de la imagen aquí

Erick Estevez
  • 37
  • 1
  • 10

1 Answers1

2

Para crear un vector de 1000 posiciones como explicabas, deberías hacer algo así:

Dim Nombre(1000) As String
Dim Counter As Integer = 0

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Counter = Counter + 1
    Nombre(Counter) = textBox1.Text
End Sub

De todas formas, te recomiendo utilizar listas para no tener el problema de los límites del array, o sea, algo así:

Dim Nombre As List(Of String)

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Nombre.Add(TextBox1.Text)
End Sub

¡Suerte!

Gustavo Cantero
  • 1,972
  • 1
  • 7
  • 13