Individuare il numero d'indice della riga di una ListBox sulla quale si è cliccato con il mouse

Da Gambas-it.org - Wikipedia.

Purtroppo non esiste una risorsa della ListBox, che restituisca il numero d'indice di una sua riga, sulla quale si sia cliccato con il mouse.

Ad ogni modo possiamo ottenere tale risultato, utilizzando queste semplici operazioni:

Dim alt As Short
Dim pos As Single

' Individua l'altezza di ogni riga della "ListBox":
alt = ListBox1.ScrollH / ListBox1.Count

' Individua il valore spurio dell'indice della riga prescelta per il rilascio:
pos = Mouse.Y / alt

' Perfeziona il valore del numero d'indice individuato, restituendo un numero intero:
Print Fix(pos)

Mostriamo un esempio pratico abbreviato:

Public Sub Form_Open()

 With ListBox1
   .Drop = True
   .List = ["aaaa", "bbbb", "cccc", "dddd", "eeee"]
 End With

End


Public Sub ListBox1_MouseUp()
 
 Print "Riga di numero d'indice: "; Fix(Mouse.Y / (ListBox1.ScrollH / ListBox1.Count))

End