sto impazzendo è da questa mattina che cerco di recuperare i dati presi da un selecteditem in una listview

il codice che utilizzo è questo:

Sub seleziona()
Dim testo As HiddenField = CType(ListView1.Items(ListView1.SelectedIndex).Fin dControl("HiddenField2"), HiddenField)
Dim tst As String = testo.Value
TextBox1.Text = tst
End Sub
questi sono l'itemtemplate ed il selecteditemtemplate


<ItemTemplate>
<asp:ImageButton ID="LinkButton1" runat="server" CommandName="select" onclick="seleziona" ImageUrl='<%# DisplayImage(Eval("urlimage").Tostring()) %>' />
<asp:HiddenField ID="HiddenField1" value='<%# Eval("urlimage") %>' runat="server" />
</ItemTemplate>

<SelectedItemTemplate>
<asp:Image ID="Lin" runat="server" ImageUrl='<%# DisplayImage(Eval("urlimage").Tostring()) %>' />
<asp:ImageButton ID="preview" ImageUrl="~/img/bottone.jpg" runat="server" ToolTip="visualizza preview" ImageAlign="Left" />
<asp:HiddenField ID="HiddenField1" value='<%# Eval("urlimage") %>' runat="server" />
</SelectedItemTemplate>

al click del bottone nell'itemtemplate richiamo la funzione
l'errore che mi viene restituito è:



Index non compreso nell'intervallo. Richiesto valore non negativo e minore della dimensione dell'insieme.
Nome parametro: index
Descrizione: Eccezione non gestita durante l'esecuzione della richiesta Web corrente. Per ulteriori informazioni sull'errore e sul suo punto di origine nel codice, vedere l'analisi dello stack.

Dettagli eccezione: System.ArgumentOutOfRangeException: Index non compreso nell'intervallo. Richiesto valore non negativo e minore della dimensione dell'insieme.
Nome parametro: index

come posso correggere il codice ?