Drag&drop entre listbox

goebish Messages postés 92 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 24 novembre 2008 - 10 juin 2002 à 11:48
cs_NuNu Messages postés 100 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 27 juillet 2004 - 7 avril 2003 à 09:50
je cherche a faire du drag and drop entre 2 listbox , quekqu'un sais t'il acomplir ce prodige ?

5 réponses

cs_NuNu Messages postés 100 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 27 juillet 2004
10 juin 2002 à 18:59
Yes Sir,

Mais le tps me manque, je suis moi-même perdue avec mes ActiveX.

Ceci dit, voici un bout de qqc:

Sur une feuille vb j'ai mis 2 listbox (list1 et list2) et un label (visible=false).

Ce n'est pas beau mais ça te guidera.

*****************************************
Option Explicit

Public iSelected

Private Sub Form_Load()
List1.AddItem "1"
List1.AddItem "2"
List1.AddItem "3"
End Sub

'lire une ligne en vue de la glisser-déplacer vers list2
Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim i,j As Integer
Dim DY

i = List1.ListIndex
j=250


iSelected = List1.List(i)
DY = TextHeight("A") ' Lit la hauteur d'une ligne.
Label1.Move List1.Left, List1.Top + Y - DY / 2,j, DY
Label1.Drag ' Fait glisser le contour de
' l'étiquette.
End Sub

'déplacer vers list2 la ligne choisie ds la list1
Private Sub List2_DragDrop(Source As Control, X As Single, Y As Single)
List2.AddItem iSelected
End Sub
*****************************************

NuNu.
0
goebish Messages postés 92 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 24 novembre 2008
11 juin 2002 à 09:44
en fait je cherchai pas une bidouille, mais savoir si il y avai un moyen plus "conventionnel" pour faire ça car cette methode pose problème (par exemple si la liste ne tient pas dans la listbox et qu'il y a un ascenseur on ne peut pas vraiment detecter la selection...) Merci quand meme pour ton code :)
0
cs_NuNu Messages postés 100 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 27 juillet 2004
11 juin 2002 à 14:01
Salut,

J'ai retesté le bout de code que je t'ai filé, en ajoutant + d'éléments ds List1 de façon à avoir l'ascenceur....Aucun pb pour faire le drag & drop entre le dernier élément de List1 et List2.

Je ne vois ton souci.

Ça a l'air de bidouille mais je m'étais inspirée de MSDN. Je pense que c'est correct.

Si tu as MSDN, va ds l'onglet Index et tape 'Drag, méthode', puis à droite click sur exemple et teste en suivant ce qui est dit. Ça peut t'aider.

A ++

NuNu.
0
Symcod Messages postés 28 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 25 avril 2003
4 avril 2003 à 17:59
Merci NuN,
Ton ider est rellement bonne seulement je trouve qu'elle prend de la place pour rien. Voici ta version simplifier pour minimiser l'espace mémoire

label = LBL_DRAG_DROP
LIST1 = LST_ACTIONS
LIST2 = LST_GR_ACTIONS

Private Sub LST_ACTIONS_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
LBL_DRAG_DROP.Tag = LST_ACTIONS.List(LST_ACTIONS.ListIndex)
DY = TextHeight("A") ' Lit la hauteur d'une ligne.
LBL_DRAG_DROP.Move LST_ACTIONS.Width / 2, LST_ACTIONS.Top + Y - DY / 2, 250, DY
LBL_DRAG_DROP.Drag
End Sub

Private Sub LST_GR_ACTION_DragDrop(Source As Control, X As Single, Y As Single)
LST_GR_ACTION.AddItem LBL_DRAG_DROP.Tag
End Sub

Merci pour ton code NuNu :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_NuNu Messages postés 100 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 27 juillet 2004
7 avril 2003 à 09:50
Salut,

c'est sympa de me proposer une autre version plus "légère"; dès que j'aurai un peu de temps, je m'y intéresserai de plus près.

A + sur le forum

~~~ NuNu ~~~
0
Rejoignez-nous