Alors plutot que d'utiliser deux boutons "Monter" et "Descendre" pour modifier la position d'un élément sélectionné dans une ListBox, je trouve plus sympa et aussi plus pratique de pouvoir le faire glisser avec la souris jusqu'à la position désirée (comme pour la playlist de Winamp par exemple)
Je tiens à remercier "hvb" dont la source (
http://www.vbfrance.com/code.aspx?id=4908 )m'a été bien précieuse, mais qui a malheureusement pour défaut de ne pas modifier la ListBox en "temps réel", mais seulement lorsque l'on relache le bouton de la souris.
Source / Exemple :
Dim ancien_index As Integer 'index de l'élément de départ
Dim nouvel_index As Integer 'nouvel index de la souris en "temps réel"
Dim nom_index As String 'nom de l'élément de l'ancien index
'Action à effectuer lors d'un clic gauche de la souris sur un élément de la liste
Private Sub Liste1_MouseDown(button As Integer, shift As Integer, x As Single, y As Single)
ancien_index = Liste1.ListIndex
End Sub
'Action à effectuer lors d'un mouvement de la souris dans la liste
Private Sub Liste1_MouseMove(button As Integer, shift As Integer, x As Single, y As Single)
If button = 1 Then 'il faut évidemment que le clic gauche reste enfoncé
nouvel_index = Liste1.ListIndex
If nouvel_index <> ancien_index Then 'il faut aussi que la souris ai quitté l'ancien élément
'on inverse ensuite les deux éléménts
nom_index = Liste1.List(ancien_index)
Liste1.RemoveItem ancien_index
Liste1.AddItem nom_index, nouvel_index
'on modifie enfin l'index de l'élément séléctionné
Liste1.ListIndex = nouvel_index
'on reinitialise l'ancien index a la nouvelle position
ancien_index = nouvel_index
End If
End If
End Sub
Conclusion :
Je ne crois pas qu'il y est de bugs : la source dont je me suis inspiré n'en avait déja pas j'avais pas envie d'en rajouter ;)
merci de m'envoyer vos réactions :)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.