Déplacement d'un image dans une PictureBox

Résolu
DarkTiteuf Messages postés 85 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 27 juillet 2006 - 3 mai 2006 à 05:18
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre 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.

5 réponses

DarkTiteuf Messages postés 85 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 27 juillet 2006
3 mai 2006 à 23:40
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);
}
}
3
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
4 mai 2006 à 11:00
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;

:)
3
sebseb42 Messages postés 495 Date d'inscription dimanche 6 juillet 2003 Statut Membre Dernière intervention 9 novembre 2007 1
3 mai 2006 à 09:45
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.
0
DarkTiteuf Messages postés 85 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 27 juillet 2006
3 mai 2006 à 20:17
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.
0

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

Posez votre question
DarkTiteuf Messages postés 85 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 27 juillet 2006
3 mai 2006 à 20:17
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.
0
Rejoignez-nous