[Drag and drop] - Retrouver la source
Bonjour,
Je cherche à faire quelque chose de surement très simple. Je cherche à faire une opération de drag and drop. ça fonctionne plutôt bien dans l'ensemble seulement j'aimerai ajouter une petite complexité.
Je m'explique j'ai deux listes (list1 et list2) et je peux mettre des éléments de list1 vers list2 et de list2 vers list1 mais je veux empêcher le drop de list2 vers... list2.
voici le code pour ma list1 :
Code:
1 2 3 4 5 6 7
|
Private Sub List1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseEventArgs)
If e.LeftButton = MouseButtonState.Pressed Then
Dim obj As New DataObject()
effects = DragDrop.DoDragDrop(List1, obj, DragDropEffects.Move)
End If
End Sub |
Et pour ma list2 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Private Sub List2_DragOver(ByVal sender As System.Object, ByVal e As System.Windows.DragEventArgs)
Dim listBox As ListBox = CType(e.Source, ListBox)
If listBox IsNot Nothing AndAlso listBox.Name = "List1" Then
e.Effects = DragDropEffects.None
Else
e.Effects = DragDropEffects.Copy
End If
End Sub |
Mon souci c'est que e.Source contient List2 et idem pour l'objet sender. De plus, si j'utilise ce code :
Code:
1 2 3 4
|
Private Sub ListPanier_DragOver(ByVal sender As System.Object, ByVal e As System.Windows.DragEventArgs)
e.Effects = DragDropEffects.None
End Sub |
ça ne change absolument pas mon icone de drag and drop et celui-ci fonctionne toujours.... :aie: J'ai dû rater quelque chose ?