Vorrei ripercorrere in VB NET quello che potevo fare in VB6 con le ListBox. In VB6 avevo una ListBox che dopo averla popolata, mi consentiva con un Click del mouse (ovviamente) di cambiare lo stato di un qualsiasi "Item" e contestualmente di modificare un valore Booleano nella Tabella di origine della lista. Questo per poter eseguire in seguito una Query selezionando solo i Record con il valore Booleano voluto. Per fare questo però, ho bisogno di conoscere il "valore" di quello specifico Item e in VB NET non so come fare. Qui i codice VB6 che vorrei ripercorrere in VB NET.

codice:
Private Sub ListaAgenti_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)
    Dim Posiz
    Posiz = ListaAgenti.ListIndex
    NomeAgente = Trim(ListaAgenti.List(Posiz))

    ListaAgenti_Esegui
End Sub

............

Private Sub ListaAgenti_Esegui()                     
On Error GoTo errore_ListaAgenti_Esegui

    Dim rcrdstAgenti As ADODB.Recordset, rcrdstMix As ADODB.Recordset
    Dim sSQL As String
    Dim i As Integer

    Set rcrdstAgenti = New ADODB.Recordset
    Set rcrdstMix = New ADODB.Recordset

    ' Porta a 0 o a -1 la Cella "Selezionato" dell'Agente su cui si è fatto "click"
    
    sSQL = "SELECT DISTINCTROW Agente, Selezionato From Agenti ORDER BY Agente"
    rcrdst.Open sSQL, ConnettiDBlocale, adOpenStatic, adLockOptimistic

    rcrdstAgenti.MoveFirst
    For i = 0 To rcrdstAgenti.RecordCount - 1
        If rcrdstAgenti("Agente") = NomeAgente Then
            If rcrdstAgenti("Selezionato") = 0 Then
                Selez = -1
                ListaAgenti.Selected(i) = True
            ElseIf rcrdstAgenti("Selezionato") = -1 Then
                Selez = 0
                ListaAgenti.Selected(i) = False
            End If
        End If
        rcrdstAgenti.MoveNext
    Next i

    Exit Sub
errore_DeselezionaTuttiAgenti:
    MsgBox "Errore nella Sub ''..........'': " & Err.Number & " - " & Err.Description
End Sub

Non sono però riuscito a fare la stessa cosa in VB NET. Ho anche l'impressione che la ListBox di VB NET sia completamente diversa da quella di VB6 e che quindi non si possa usarla per fare quello che mi serve.
Qualcuno può aiutarmi?