Ceci est un tout petit code qui sert à montrer l'utilisation du Drag & Drop entre deux listboxes.
Source / Exemple :
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const LB_ITEMFROMPOINT = &H1A9
Private nDraggedItemIndex As Integer
Private Sub Form_Load()
Dim a As Integer
For a = 0 To 10
Liste(0).AddItem "Item " & Chr$(65 + a) & "-0"
Liste(1).AddItem "Item " & Chr$(65 + a) & "-1"
Next a
nDraggedItemIndex = -1
End Sub
Private Sub Liste_DragDrop(Index As Integer, Source As Control, X As Single, Y As Single)
If nDraggedItemIndex <> -1 Then
Liste(Index).AddItem Source.List(nDraggedItemIndex), Liste(Index).ListIndex + 1
Source.RemoveItem nDraggedItemIndex
nDraggedItemIndex = -1
Source.DragMode = vbManual
End If
End Sub
Private Sub Liste_DragOver(Index As Integer, Source As Control, X As Single, Y As Single, State As Integer)
Dim Coords As Long
Dim OverIndex As Long
Coords = Me.ScaleY(Y, vbTwips, vbPixels) * &H10000 + Me.ScaleX(X, vbTwips, vbPixels)
OverIndex = SendMessage(Liste(Index).hwnd, LB_ITEMFROMPOINT, 0&, ByVal Coords)
If Liste(Index).ListCount > 0 Then
Liste(Index).ListIndex = OverIndex Mod &H10000
End If
If nDraggedItemIndex = -1 Then
nDraggedItemIndex = Source.ListIndex
End If
End Sub
Private Sub Liste_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
If Liste(Index).ListIndex <> -1 And Button = vbLeftButton Then
Liste(Index).DragMode = vbAutomatic
Liste(Index).Drag
End If
End Sub
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.