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

Signaler
Messages postés
85
Date d'inscription
dimanche 14 novembre 2004
Statut
Membre
Dernière intervention
27 juillet 2006
-
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
-
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.

5 réponses

Messages postés
85
Date d'inscription
dimanche 14 novembre 2004
Statut
Membre
Dernière intervention
27 juillet 2006

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);
}
}
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
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;

:)
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
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.
Messages postés
85
Date d'inscription
dimanche 14 novembre 2004
Statut
Membre
Dernière intervention
27 juillet 2006

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.
Messages postés
85
Date d'inscription
dimanche 14 novembre 2004
Statut
Membre
Dernière intervention
27 juillet 2006

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.