Déplacer une picturebox [Résolu]

Tuizi 144 Messages postés samedi 21 octobre 2000Date d'inscription 7 mai 2009 Dernière intervention - 22 juil. 2006 à 18:01 - Dernière réponse : MILAHA13 10 Messages postés mercredi 7 avril 2010Date d'inscription 22 septembre 2010 Dernière intervention
- 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
Afficher la suite 

8 réponses

Répondre au sujet
Tuizi 144 Messages postés samedi 21 octobre 2000Date d'inscription 7 mai 2009 Dernière intervention - 22 juil. 2006 à 18:04
0
Utile
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
Commenter la réponse de Tuizi
Tuizi 144 Messages postés samedi 21 octobre 2000Date d'inscription 7 mai 2009 Dernière intervention - 22 juil. 2006 à 18:22
0
Utile
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
Commenter la réponse de Tuizi
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 22 juil. 2006 à 18:49
0
Utile
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
*/
Commenter la réponse de cs_coq
Tuizi 144 Messages postés samedi 21 octobre 2000Date d'inscription 7 mai 2009 Dernière intervention - 23 juil. 2006 à 12:45
0
Utile
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
Commenter la réponse de Tuizi
Tuizi 144 Messages postés samedi 21 octobre 2000Date d'inscription 7 mai 2009 Dernière intervention - 23 juil. 2006 à 22:51
0
Utile
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
Commenter la réponse de Tuizi
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 23 juil. 2006 à 23:16
0
Utile
lol
De rien.

/*
coq
MVP Visual C#
CoqBlog
*/
Commenter la réponse de cs_coq
MILAHA13 10 Messages postés mercredi 7 avril 2010Date d'inscription 22 septembre 2010 Dernière intervention - 22 mai 2010 à 19:17
0
Utile
bonjour,
je veux savoire coment déplacer une image(silhouette) en haut a gauche
merci
Commenter la réponse de MILAHA13
cs_coq 6366 Messages postés samedi 1 juin 2002Date d'inscription 2 août 2014 Dernière intervention - 23 juil. 2006 à 13:17
-1
Utile
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
*/
Commenter la réponse de cs_coq

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.