Déplacement d'un image dans une PictureBox [Résolu]

Messages postés
85
Date d'inscription
dimanche 14 novembre 2004
Dernière intervention
27 juillet 2006
- - Dernière réponse : sebseb42
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Dernière intervention
9 novembre 2007
- 4 mai 2006 à 11:00
Bonjour à tous,
Je sais pas si le titre est compréhensible mais voila ce que je cherche à faire :

J'ai une image dans une PictureBox. J'arrive sans problème à zoomer et dézoomer, mais quand je zoom beaucoup, il arrive un moment où mon image est plus grande que la PictureBox.

Je cherche pouvoir faire un glisser/déplacer de l'image avec un click tenu de la souris qui me permettrait de pouvoir voir les morceaux que je ne peux pas voir en ayant trop zoomé.

Merci d'avance.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
85
Date d'inscription
dimanche 14 novembre 2004
Dernière intervention
27 juillet 2006
3
Merci
Donc merci bien pour ton éclaircissement j'ai réussit à faire ce que je voulais.
Voici ce que ca donne :

private void pictureBox_image_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
origine_x = e.X;
origine_y = e.Y;
deplacmt = true;
}

private void pictureBox_image_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
deplacmt = false;
}

private void pictureBox_image_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (deplacmt)
{
int dpmt_x = origine_x - e.X;
int dpmt_y = origine_y - e.Y;

pictureBox_image.Location = new Point( pictureBox_image.Location.X - dpmt_x , pictureBox_image.Location.Y - dpmt_y);
}
}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de DarkTiteuf
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Dernière intervention
9 novembre 2007
3
Merci
oui c'est ca, et si on veut chipoter sur les details, tu peux enlever int origine_x et int origine_y et remplacer par Point origine ;)

origine = new Point(e.X, e.Y);
deplacmt = true;

:)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de sebseb42
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Dernière intervention
9 novembre 2007
0
Merci
Pour commencer tu devrais mettre ton PictureBox dans un Panel, et ton Panel, tu lui met la propriété AutoScroll sur true.

Ensuite, pour ton déplacement, c'est assez facile mais je ne pourrais pas te donner de code precis de tete.
Cependant, l'idée est de garder les coordonnées de la souris sur un MouseDown et de mettre un bool genre mouse_down sur true. Sur un MouseUp, il faut penser a remettre le bool mouse_down sur false.

Ensuite, dans le MouseMove, tu modifie les coordonnée de ton PictureBox en fonction des coordonnées obtenu au MouseDown et les coordonnées actuelles.

Les evenements MouseUp, MouseDown et MouseMove sont ceux du PictureBox.
Commenter la réponse de sebseb42
Messages postés
85
Date d'inscription
dimanche 14 novembre 2004
Dernière intervention
27 juillet 2006
0
Merci
Effectivement, le fait de mettre le piscturebix dans un panel me permettra deja d'avoir mes 2 scrolls sur les coté.
Je vais regarder pour les conseil que tu m'as donné, merci bien.
Commenter la réponse de DarkTiteuf
Messages postés
85
Date d'inscription
dimanche 14 novembre 2004
Dernière intervention
27 juillet 2006
0
Merci
Effectivement, le fait de mettre le piscturebix dans un panel me permettra deja d'avoir mes 2 scrolls sur les coté.
Je vais regarder pour les conseil que tu m'as donné, merci bien.
Commenter la réponse de DarkTiteuf

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.