Riordinare manualmente con il mouse gli elementi di una ListBox

Da Gambas-it.org - Wikipedia.

In questo caso non si intende spostare e interscambiare un elemento della ListBox con un altro, bensì spostare un elemento con il mouse riordinando a piacere gli elementi.

Mostriamo un esempio pratico usando la modalità del Drag&Drop:

Public Sub Form_Open()

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

End

 
Public Sub ListBox1_MouseDrag()

 ListBox1.Drag(ListBox1.Text, "text/html")

End 


Public Sub ListBox1_Drop()

 Dim n, c As Byte
 Dim ss As String[]

 n = Fix(Drag.Y / (ListBox1.ScrollH / ListBox1.Count))
 ss = ListBox1.List

 ss.Add(Drag.Data, n)
 c = ListBox1.Index

 If ListBox1.Index > n Then c = ListBox1.Index + 1 
 ss.Remove(c, 1)
 ListBox1.List = ss

End