Déplacement de contrôle dans une Form

Résolu
pjouy Messages postés 110 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 18 mai 2009 - 17 févr. 2006 à 22:34
pjouy Messages postés 110 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 18 mai 2009 - 17 févr. 2006 à 23:35
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

Utilisateur anonyme
17 févr. 2006 à 22:50
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
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
17 févr. 2006 à 22:56
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
pjouy Messages postés 110 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 18 mai 2009
17 févr. 2006 à 23:35
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... ]
0