Déplacement de contrôle dans une Form

Résolu
Signaler
Messages postés
110
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
18 mai 2009
-
Messages postés
110
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
18 mai 2009
-
Bonjour,

Je souhaiterais savoir si on peut déplacer un contrôle (dans mon cas une Frame) à l'intérieur d'une Form, un peu comme une fenêtre MDI dans environnement multi-fenêtres. J'ai pensé vaguement à un drag & drop mais je pense que ça ne correspond pas à un besoin.
Mon idée étant de permettre de placer ses contrôles là où l'on veut dans la fenêtre.

Merci beaucoup !

3 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Bonsoir

Une petite recherche et t'aurait eu ta réponse sans poser ta question.
J'y ai déjà répondu a pas mal de message ou la question était la même
Pas la peine d'utiliser DragDrop, tout simplement:

Private PtClickX As Single, PtClickY As Single
Private Sub Frame1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
PtClickX = X
PtClickY = Y
End If
End Sub
Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Frame1.Move Frame1.Left + (X - PtClickX), Frame1.Top + (Y - PtClickY)
End If
End Sub

Kenji
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Pour compléter la réponse de Charles, voici encore une autre méthode. C'est pas ce qui manque....

Dim tmpX As Integer
Dim tmpY As Integer
Dim Down As Integer


Private Sub Frame1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)


tmpX = X
tmpY = Y
Down = 1

End Sub


Private Sub Frame1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)


If Down = 1 Then
Frame1.Left = Frame1.Left + (X - tmpX)
Frame1.Top = Frame1.Top + (Y - tmpY)
End If

End Sub


Private Sub Frame1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)


Down = 0


End Sub


3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
110
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
18 mai 2009

Merci beaucoup à vous deux, les réponses me conviennent toutes.

Malheureusement, depuis quelques semaines, j'ai beaucoup de mal à trouver réponse à mes questions via le moteur de recherche (je tombe souvent sur des choses qui n'ont rien à voir).

[Désolé le Réponse acceptée ne fonctionne pas... ]