Déplacer une picturebox

Résolu
Tuizi Messages postés 144 Date d'inscription samedi 21 octobre 2000 Statut Membre Dernière intervention 7 mai 2009 - 22 juil. 2006 à 18:01
MILAHA13 Messages postés 10 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 22 septembre 2010 - 22 mai 2010 à 19:17
Bonjour,
voila durant l'execution de mon programme je souhaite déplacer mon image pour cela j'utilise l'évenement MouseMove de la picturebox concernée pour la déplacer ce qui donne:

private
void pictureBox2_MouseMove(
object sender,
MouseEventArgs e){
if (e.Button MouseButtons.Left)pictureBox2.Location

new
Point(e.X, e.Y);
//location;}

Seulement le problème c'est que lorsque je fais, ça une chose bizarre ce produit... la picturebox aparait 2 fois à des coordonné différente  et elle laisse des trainée pas très propre.

Quelqu'un sait comment régler ce problème?

Tuizi

8 réponses

Tuizi Messages postés 144 Date d'inscription samedi 21 octobre 2000 Statut Membre Dernière intervention 7 mai 2009
22 juil. 2006 à 18:04
Ouch alors la c encore plus fou!!!!



Pour enlever les trainé, j'ai fais un





Application

.DoEvents();






Je n'ai plus les trianées, mais lorsque je relache mon clic, sa fait comme une animation ou ma picture box revient à sa position original!!!




Je tiens a précisez que dans mon code il y a juste ça, une picturebox et ce code!!!!!!!




Tuizi
0
Tuizi Messages postés 144 Date d'inscription samedi 21 octobre 2000 Statut Membre Dernière intervention 7 mai 2009
22 juil. 2006 à 18:22
Huuummm je viens de comprendre, il faut prendre la position du curseur avec


Cursor



.Position
et ça règle le problème, car avec le e.X, lorsque l'on est dans la picturebox sa marche mais au dela, les coordonées ne sont plus bonne et créé un double affichage... enfin j'arrive pas a l'expliquer mais faite le vous comprendré!


Tuizi
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
22 juil. 2006 à 18:49
Salut,

Oui, le paramètre e donne les coordonnées relatives au contrôle déclenchant l'event, pas relatives à son conteneur.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Tuizi Messages postés 144 Date d'inscription samedi 21 octobre 2000 Statut Membre Dernière intervention 7 mai 2009
23 juil. 2006 à 12:45
Par contre j'ai un problème c'est que j'utilise Cursor pour placer ma pictureBox mais ça créé un gros décalage car:

Si je met par exemple:



pictureBox2.Location =




new



Point
(

Cursor
.Position.X,

Cursor
.Position.Y);
au moment ou je suis à X 0 et Y 0, mon curseur lui est en dehors de ma Form et mon image est coller au coordonné X= 0 et Y = 0 de ma Form, donc il y a un décalage si tu vois ce que je veux dire. J'ai donc essayé





pictureBox2.Location = newPoint(Cursor.Position.X - this.Location.X,Cursor.Position.Y - this.Location.Y);





Mais maintenant le décalage correspond au la taille de la barre de titre (je suis pas sur qu'elle se nomme comme ça, enfin c'est celle avec le bouton réduir, agrandir, fermer). Je vais voir si il n'y a pas moyen de bidouiller un petit calcul qui me donne cette taille avec this.ClientRectangle
par exemple.


Tuizi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tuizi Messages postés 144 Date d'inscription samedi 21 octobre 2000 Statut Membre Dernière intervention 7 mai 2009
23 juil. 2006 à 22:51
Wowwww!!! Monsieur Coq!!! mon héros!
Pas besoin de calcul!!! la méthode suffit:


pictureBox2.Location =


this.PointToClient(newPoint(Cursor.Position.X, Cursor.Position.Y));




Bien joué, merci!

Tuizi
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
23 juil. 2006 à 23:16
lol
De rien.

/*
coq
MVP Visual C#
CoqBlog
*/
0
MILAHA13 Messages postés 10 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 22 septembre 2010 1
22 mai 2010 à 19:17
bonjour,
je veux savoire coment déplacer une image(silhouette) en haut a gauche
merci
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
23 juil. 2006 à 13:17
Comme le dit la doc, Cursor.Position donne la position du curseur en coordonnées écran.
Utilises la méthode PointToClient du contrôle conteneur du PictureBox (dans ton cas, le formulaire apparemment)

/*
coq
MVP Visual C#
CoqBlog
*/
-1
Rejoignez-nous