>Protected Sub Button1_Click(ByVal sender As Object, ByVal e As
>System.EventArgs)
> Dim cor(9) As Integer
> Dim err(9) As Integer
> Dim label(9) As Label
> Dim i As Integer
>
> For i = 1 To 9
> If label(i).Text = "1" Then
> cor(i - 1) = i
> Else
> err(i - 1) = i
>
> End If
>
> Next
>
> End Sub
>
>ma mi da il seguente errore:
>Riferimento a un oggetto non impostato su un'istanza di oggetto.
>
>Perchè?
>
Ciao,
l'errore è dovuto al fatto che il tuo array è solo dichiarato, ma non è popolato e quindi tentando di accedere ad un elemento dell'array ti da errore.
Da quanto ho capito tu nella pagina aspx hai per ogni domanda due option Vero/Falso e una label nascosta che ti dice se la risposta data è corretta o meno.
Supponendo ad esempio di avere due label così definite nella pagina aspx:
<asp:Label id="lbl1" runat="server" Visible="False" />
<asp:Label id="lbl2" runat="server" Visible="False" />
Hai due possibilità per prendere il rifermento alla label da codice. La prima è utilizzare direttamente la variabile lbl1 (o lbl2) che il designer ti crea per farti accedere a tutte le proprietà del controllo.
La seconda invece è utilizzare il metodo FindControl per ricercare il controllo all'interno della pagina. In questo caso la seconda soluzione è più comoda perchè ti consente di creare un ciclo molto semplice:
For i as integer = 1 to 2
dim lbl as Label = Ctype(Page.FindControl("lbl" & i.ToString()), Label)
if lbl.Text = "Corretto" Then
'Popola array
end if
next
Marco