Déplacer un controle en dragdrop

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 800 fois - Téléchargée 41 fois

Contenu du snippet

Je sais que cette source existe sous d'autres formes, mais la mienne est différente. Vous draguez juste le controle et le déplacer comme par magie ! la source est simple, il fallait juste trouver l'idée.

Source / Exemple :


'variables TEMPORAIRES
Dim xTemp,xTemp2 As Long
Dim yTemp,yTemp2 As Long

'form ou un autre conteneur
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X - xTemp, Y - yTemp
End Sub

'Si on drag sur l'objet
Private Sub csub_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move xTemp2 + X - xTemp, yTemp2 + Y - yTemp
End Sub

'Et votre objet à déplacer
Private Sub csub_MouseDown( Button As Integer, Shift As Integer, X As Single, Y As Single)
csub.Drag
xTemp = X
yTemp = Y
xTemp2 = csub.Left
yTemp2 = csub.Top
End Sub

A voir également

Ajouter un commentaire

Commentaires

cs_nafee
Messages postés
5
Date d'inscription
lundi 2 août 2004
Statut
Membre
Dernière intervention
11 février 2006
-
Exellent
Airbornes
Messages postés
6
Date d'inscription
jeudi 24 avril 2003
Statut
Membre
Dernière intervention
23 septembre 2005
-
Super ce code, bravo

Il y a même la possibilité de changer le container du control pour draguer le control, par exemple, du form à un picture box

Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)
Set Source.Container = Picture1
Source.Move X - xTemp, Y - yTemp
End Sub

Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Set Source.Container = Form1
Source.Move X - xTemp, Y - yTemp
End Sub
raffmarseille
Messages postés
11
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
22 avril 2008
-
C'est super bien trouvé comme ID. Par contre, Si tu as 2 objets (avec les méthodes identiques pour le déplacement), et que tu drag le 1 sur le 2 (oue le 2 sur le 1), le 2ème se retrouve projeté à un endroit incontrôlé de la feuille. Je te propose un autre code. C'est un peu moins joli, mais ça marche pas mal, et tu déplaces l'objet complet. Dis moi ce que tu en penses

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
Command1.Top = Command1.Top + (Y - Command1.Height)
Command1.Left = Command1.Left + (X - Command1.Width)
End If
End Sub

En tt K bravo pour l'ID c nickel
Mystcreater
Messages postés
10
Date d'inscription
vendredi 11 octobre 2002
Statut
Membre
Dernière intervention
18 septembre 2003
-
Tout simplement génial. Je me demande quand vont-ils faire l'évênement "dragndrop" dans Access car j'ai fait quelques programmes dans Access sur lesquels je n'ai jamais eu le goût des convertir en vb et que j'aurais eu besoin de ce précieux évênement. Enfin, merci!
cs_Koiu
Messages postés
269
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
19 février 2015
-
C super!!! 10/10

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.