Foros del Web » Programación para mayores de 30 ;) » .NET »

¿Qué hago mal en este código? (arrays en VB)

Estas en el tema de ¿Qué hago mal en este código? (arrays en VB) en el foro de .NET en Foros del Web. Buenas, estamos aprendiendo a usar arrays en Visual Studio y me da un error de NullReferenceException. He buscado por Internet y demás, pero no consigo ...
  #1 (permalink)  
Antiguo 04/03/2016, 18:12
Avatar de BramSt  
Fecha de Ingreso: abril-2015
Mensajes: 117
Antigüedad: 9 años
Puntos: 5
¿Qué hago mal en este código? (arrays en VB)

Buenas, estamos aprendiendo a usar arrays en Visual Studio y me da un error de NullReferenceException.

He buscado por Internet y demás, pero no consigo arreglar el error, que está en el array que primero declaro en la estructura libro y luego redimensiono en el Form_Load.

La cuestión es que la primera vez que uso la estructura (cuando grabo un libro con todos sus datos), parece que todo va bien... pero a la segunda es cuando casca la excepción.

A ver si me podéis ayudar:

Código del módulo:

Código vb:
Ver original
  1. Module Module1
  2.  
  3.     Public Structure libro
  4.  
  5.         Public titulo As String
  6.         Public autor As String
  7.         Public tema As String
  8.         Public paginas As Integer
  9.  
  10.         Public formato() As Boolean 'este es el array que da excepción'
  11.  
  12.         Public novedad As Boolean
  13.         Public reed As Boolean
  14.  
  15.  
  16.     End Structure
  17.  
  18.  
  19.     Public array(6) As libro
  20.  
  21.     Public pos As Integer
  22.  
  23.  
  24.  
  25.     Public iterator As Integer
  26.  
  27. End Module

Código del Form_Load:

Código vb:
Ver original
  1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  2.         pos = 0
  3.         RadioButton1.Checked = False
  4.         RadioButton2.Checked = False
  5.  
  6.         Dim k As Integer
  7.  
  8.         For k = 0 To k = 6 Step 1
  9.  
  10.             ReDim array(k).formato(1)
  11.         Next
  12.  
  13.  
  14.         For k = 0 To k = 6
  15.             array(k).formato(0) = False 'esto lo hice por si el error fuera que no inicializo los elementos del array, pero no es eso'
  16.            array(k).formato(1) = False
  17.  
  18.  
  19.         Next
  20.  
  21. End Sub


Código del botón que guarda los datos:

Código vb:
Ver original
  1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  2.        
  3.  
  4.  
  5.  
  6.         array(pos).titulo = TextBox1.Text
  7.         array(pos).autor = TextBox2.Text
  8.         array(pos).tema = ComboBox1.SelectedItem
  9.         array(pos).paginas = TextBox4.Text
  10.  
  11.         'codigo para si está checkeado o no el checkbox1, se guarde valor true o false en el primer elemento del array'
  12.        'es en esta parte del código donde arroja la excepción, pero no sé por qué'
  13.  
  14.         If (CheckBox1.Checked = False) Then
  15.  
  16.             array(pos).formato(0) = False
  17.  
  18.         ElseIf ((CheckBox1.Checked = True)) Then
  19.  
  20.             array(pos).formato(0) = True
  21.  
  22.  
  23.         End If
  24.  
  25.          'codigo para si está checkeado o no el checkbox2, se guarde valor true o false en el segundo elemento del array'
  26.  
  27.         If (CheckBox2.Checked = False) Then
  28.  
  29.             array(pos).formato(1) = False
  30.  
  31.         ElseIf ((CheckBox2.Checked = True)) Then
  32.  
  33.             array(pos).formato(1) = True
  34.  
  35.         End If
  36.  
  37.  
  38.  
  39.         array(pos).novedad = RadioButton1.Checked
  40.         array(pos).reed = RadioButton2.Checked
  41.  
  42.  
  43.  
  44.         pos = pos + 1
  45.  
  46.  
  47.  
  48. End Sub

Muchas gracias.

Última edición por BramSt; 04/03/2016 a las 18:20

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:23.