cs_JLuc01
Messages postés206Date d'inscriptionsamedi 17 janvier 2009StatutMembreDernière intervention 5 mars 2013
-
11 janv. 2013 à 21:31
cs_JLuc01
Messages postés206Date d'inscriptionsamedi 17 janvier 2009StatutMembreDernière intervention 5 mars 2013
-
11 janv. 2013 à 23:16
Bonsoir,
Je cherche a comprendre pourquoi ce morceau de code ne marche pas:
If PictureBox.Bounds.Contains(e.X, e.Y) Then
Variable = True
End If
Alors que celui-ci marche correctement:
If Rectangle.Contains(e.X, e.Y) Then
Variable = True
End If
Par "marcher" , je sous-entend que la Variable dans la boucle prend la valeur TRUE lorsque le curseur se trouve soit sur la PictureBox ou soit sur le Rectangle.
Pour precision, cette boucle IF THEN ELSE ENDIF se trouve dans l'evenement Form1_MouseMove.
De plus, si je met 2 Labels sur la Form1 avec le code suivant:
Label1.Text = CStr(e.X)
Label2.Text = CStr(e.Y)
Je peux voir la position de mon curseur quand je bouge la souris sur la Form1 ou a l'interieur du Rectangle, mais la valeur ne change plus lorsque je suis sur la PictureBox.
En posant la question differement, comment puis-je voir/recuperer la position (ou coordonnees X et Y) quand mon curseur se trouve sur la PictureBox?
En esperant avoir exposer mon probleme clairement, merci.
Tu peux 'concentrer' tous les événements MouseMove de tous tes contrôles sur la même procédure :
AddHandler Me.MouseMove, AddressOf MM
AddHandler PictureBox1.MouseMove, AddressOf MM
AddHandler ....
Et ensuite lire la position du curseur (ta souris) par rapport à l'écran :
Private Sub MM(ByVal sender As Object, ByVal e As MouseEventArgs)
Debug.Print(String.Format("position x :{0} position y :{1}", Cursor.Position.X, Cursor.Position.Y))
End Sub
Une simple transposition position fenêtre par rapport à l'écran te donneront les coordonnées fenêtre.