Limiter un déplacement de controle dynamiquement

cs_Cameleon69 Messages postés 98 Date d'inscription lundi 31 décembre 2001 Statut Membre Dernière intervention 7 août 2005 - 19 nov. 2003 à 10:24
cs_PA56 Messages postés 3 Date d'inscription mardi 30 mai 2006 Statut Membre Dernière intervention 1 juin 2006 - 1 juin 2006 à 10:35
Je cherche comment limiter le déplacement à une picture box.
Cette picture box se trouve dans une autre et je voudrais que la première ne sorte pas du container.
Comme un slider par exemple.

Merci d'avance

2 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
19 nov. 2003 à 17:40
Il suffit de faire un test à chaque fois que tu le déplace.

DarK Sidious

[Responsable de la rubrique API et responsable VB du site www.ProgOtoP.com]
0
cs_PA56 Messages postés 3 Date d'inscription mardi 30 mai 2006 Statut Membre Dernière intervention 1 juin 2006
1 juin 2006 à 10:35
Voilà ce que je peux te donner: la picture 1 ne se "promène" que dans la picture2:

Private m_sX As Single
Private m_sY As Single
Private m_bdeplac As Boolean

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
' on garde les coordonnées de la souris
m_sX = X
m_sY = Y
m_bdeplac = True
End Sub



Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If m_bdeplac Then
'Contraintes de déplacement: ne pas sortir du picture2
    'bord gauche
    If X - m_sX + Picture1.Left < 0 Then
      Picture1.Left = 0
    'bord droit
    ElseIf X - m_sX + Picture1.Left + Picture1.Width > Picture2.Width Then
      Picture1.Left = Picture2.Width - Picture1.Width
    Else
      'Déplacement normal
      Picture1.Left = X - m_sX + Picture1.Left
    End If
    'bord haut
    If Y - m_sY + Picture1.Top < 0 Then
      Picture1.Top = 0
    'bord bas
    ElseIf Y - m_sY + Picture1.Top + Picture1.Height > Picture2.Height Then
      Picture1.Top = Picture2.Height - Picture1.Height
    Else
      'Déplacement normal
      Picture1.Top = Y - m_sY + Picture1.Top
    End If
    Picture2.Refresh 'pour ne pas voir la trajectoire
End If
0
Rejoignez-nous