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

NullReferenceException

Estas en el tema de NullReferenceException en el foro de .NET en Foros del Web. Es una agenda de eventos, q consiste en agregar eventos a un array y a un listbox. Para el evento del boton "btn3" de Salvar ...
  #1 (permalink)  
Antiguo 30/01/2009, 05:50
Avatar de naitmeir  
Fecha de Ingreso: junio-2008
Ubicación: Barcelona
Mensajes: 227
Antigüedad: 15 años, 10 meses
Puntos: 0
Pregunta NullReferenceException

Es una agenda de eventos, q consiste en agregar eventos a un array y a un listbox.

Para el evento del boton "btn3" de Salvar me salta NullReferenceExcepetion en la linea

listaEventos.Add(objNewEvent)

y para el evento lstbox_DoubleClick, me salta para la linea


Return CType(listaEventos(lstbox.SelectedIndex), esdeveniment)

... Estoy siguiendo unos ejemplos y en los ejemplos no hay errores... Ni idea, de lo que puede ser... dejo el codigo...

Código PHP:
Public Class Form1
    Dim listaEventos 
As ArrayList

    
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        lbl1
.Visible False
        lbl2
.Visible False
        lbl3
.Visible False

        txb1
.Visible False
        txb2
.Visible False
        txb3
.Visible False
        txb4
.Visible False
        btn1
.Visible True
        btn2
.Visible True
        btn3
.Visible False
        btn4
.Visible True

    End Sub

    
Private Sub btn1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles btn1.Click
        OutFirstPanel
()
    
End Sub

    
Private Sub btn2_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles btn2.Click
        
'If no event is selected in the ListBox then... 
        If lstbox.SelectedIndex = -1 Then
            '
Display a message 
            MessageBox
.Show("Debes seleccionar un evento para poder borrarlo."_
                
"Agenda de eventos")
            
'Exit this method 
            Exit Sub
        End If
        '
Prompt the user to delete the selected event 
        
If MessageBox.Show("Estas seguro de borrar el evento:  " _
            SelectedEvent
.titol "?""Agenda de eventos"_
            MessageBoxButtons
.YesNoMessageBoxIcon.Question) = _
            DialogResult
.Yes Then
            
'Get the event to be deleted 
            Dim objEventToDelete As esdeveniment = SelectedEvent
            '
Remove the event from the ArrayList 
            listaEventos
.Remove(objEventToDelete)
            
'Remove the event from the ListBox 
            lstbox.Items.Remove(objEventToDelete)
        End If

    End Sub
    Private Sub btn3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn3.Click
        CreateEvent(txb1.Text, txb2.Text, txb3.Text, txb4.Text)
        OutSecondPanel()
    End Sub
    Private Sub lstbox_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstbox.DoubleClick
        OutFirstPanel()

        txb1.Text = SelectedEvent.inici
        txb2.Text = SelectedEvent.durada
        txb3.Text = SelectedEvent.titol
        txb4.Text = SelectedEvent.descripcio
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn4.Click
        '
Clear the list
        
lstbox.Items.Clear()
    
End Sub
    
Public Sub CreateEvent(ByVal inici As String_
    ByVal durada 
As StringByVal titol As StringByVal descripcio As String)
        
'Declare a esdeveniment object 
        Dim objNewEvent As esdeveniment
        '
Create the new event 
        objNewEvent
.inici inici
        objNewEvent
.durada durada
        objNewEvent
.titol titol
        objNewEvent
.descripcio descripcio
        
'Add the new event to the Arraylist 
        listaEventos.Add(objNewEvent)
        '
Add the new event to the ListBox control 
        lstbox
.Items.Add(objNewEvent)
    
End Sub
    
Public ReadOnly Property SelectedEvent() As esdeveniment
        Get
            
If lstbox.SelectedIndex <> -1 Then
                
Return the selected event 
                
Return CType(listaEventos(lstbox.SelectedIndex), esdeveniment)
            
End If
        
End Get
    End Property
    
Private Sub OutFirstPanel()
        
lstbox.Visible False
        lbl1
.Visible True
        lbl2
.Visible True
        lbl3
.Visible True
        txb1
.Visible True
        txb2
.Visible True
        txb3
.Visible True
        txb4
.Visible True
        btn1
.Visible False
        btn2
.Visible False
        btn3
.Visible True
        btn4
.Visible False
    End Sub
    
Private Sub OutSecondPanel()
        
lstbox.Visible True
        lbl1
.Visible False
        lbl2
.Visible False
        lbl3
.Visible False
        txb1
.Visible False
        txb2
.Visible False
        txb3
.Visible False
        txb4
.Visible False
        btn1
.Visible True
        btn2
.Visible True
        btn3
.Visible False
        btn4
.Visible True
    End Sub
End 
Class 
Clase esdeveniments


Código PHP:
Public Structure esdeveniment

    
Public members 
    
Public inici As String
    
Public durada As String
    
Public titol As String
    
Public descripcio As String

End Structure 
Un saludo y gracias de antemano
  #2 (permalink)  
Antiguo 30/01/2009, 06:01
 
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid, España
Mensajes: 149
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: NullReferenceException

Posiblemente, esos errores te saltarán porque no hayas inicializado la variable "listaEventos". En alguna parte del código deberías hacer:

listaEventos = new ArrayList

Si no creas una instancia de la clase ArrayList y la enlazas con la variable listaEventos, es normal que te salte una NullReferenceException

Un saludo
  #3 (permalink)  
Antiguo 30/01/2009, 06:06
Avatar de naitmeir  
Fecha de Ingreso: junio-2008
Ubicación: Barcelona
Mensajes: 227
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: NullReferenceException

Muchas gracias, era ese el problema. Estoy empezando con .Net y no me aclaro mucho por ahora.
  #4 (permalink)  
Antiguo 30/01/2009, 06:08
 
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid, España
Mensajes: 149
Antigüedad: 15 años, 5 meses
Puntos: 5
Respuesta: NullReferenceException

Bueno, para eso están los foros y los tutoriales :)

Saludos
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 02:52.