Déplacement comme dans Photoshop /Windows Form C# Visual Studio/
Résolu/Fermé
Pearusdoancaia
Messages postés
71
Date d'inscription
mardi 21 mai 2019
Statut
Membre
Dernière intervention
14 janvier 2021
-
25 janv. 2020 à 22:23
Whismeril Messages postés 19027 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 avril 2024 - 30 janv. 2020 à 16:22
Whismeril Messages postés 19027 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 avril 2024 - 30 janv. 2020 à 16:22
A voir également:
- Déplacement comme dans Photoshop /Windows Form C# Visual Studio/
- Microsoft visual c++ runtime - Guide
- Photoshop pour pc - Télécharger - Montage photo
- Obs studio windows 7 - Télécharger - TV & Vidéo
- Clé windows 10 gratuit - Guide
- Windows 10 gratuit - Guide
3 réponses
Whismeril
Messages postés
19027
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 avril 2024
931
26 janv. 2020 à 08:48
26 janv. 2020 à 08:48
Bonjour
Je n’ai pas photoshop, mais dans d’autres logiciel de photo ce que tu décris n’est possible que si la.photo n’est pas affichée en plein écran (zoom).
Je vais donc partir de cette même hypothèse : ton panel déborde du formulaire.
Il te suffit de mettre la propriété AutoScroll du formulaire à true, ainsi un ascenseur vertical et un horizontal apparaîtront.
Ensuite dans l’événement MouseClick tu vérifies le bouton et la touche espace du clavier pour associer ou non la position des ascenseurs au déplacement de la souris.
Je n’ai pas photoshop, mais dans d’autres logiciel de photo ce que tu décris n’est possible que si la.photo n’est pas affichée en plein écran (zoom).
Je vais donc partir de cette même hypothèse : ton panel déborde du formulaire.
Il te suffit de mettre la propriété AutoScroll du formulaire à true, ainsi un ascenseur vertical et un horizontal apparaîtront.
Ensuite dans l’événement MouseClick tu vérifies le bouton et la touche espace du clavier pour associer ou non la position des ascenseurs au déplacement de la souris.
Bonjour
ça me chiffonnait ton histoire <bloc>elles clignotes, vont au début et reviennent à l'endroit voulu, quand on relâche tout on a une chance sur deux de tomber sur le début ou l'endroit voulu puis, si on arrive à l'endroit voulu et qu'on veut se redéplacer elles reviennent au début</bloc>
J'ai eu un peu de temps pour faire un test rapide. Avec AutoScroll et Keypreview à True
Je n'ai pas de soucis.
J'ai laissé la possibilité de régler la vitesse de défilement avec un coéficient.
ça me chiffonnait ton histoire <bloc>elles clignotes, vont au début et reviennent à l'endroit voulu, quand on relâche tout on a une chance sur deux de tomber sur le début ou l'endroit voulu puis, si on arrive à l'endroit voulu et qu'on veut se redéplacer elles reviennent au début</bloc>
J'ai eu un peu de temps pour faire un test rapide. Avec AutoScroll et Keypreview à True
private Point origine; private int scrollH; private int scrollV; private bool espace = false; private double kx = 1; // coeff de "vitesse" de défilement par rapport au déplacement de la souris, à affiner private double ky = 1; private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Space) espace = true; else espace = false; } private void Form1_KeyUp(object sender, KeyEventArgs e) { espace = false; } private void Panel1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right) { origine = MousePosition; scrollH = HorizontalScroll.Value; scrollV = VerticalScroll.Value; } } private void Panel1_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Right & espace) { int h = scrollH + (int)((MousePosition.X - origine.X)* kx); int v = scrollV + (int)((MousePosition.Y - origine.Y) * ky); if (h < 0) h = 0; else if (h > HorizontalScroll.Maximum) h = HorizontalScroll.Maximum; if (v < 0) v = 0; else if (v > VerticalScroll.Maximum) v = VerticalScroll.Maximum; HorizontalScroll.Value = h; VerticalScroll.Value = v; } }
Je n'ai pas de soucis.
J'ai laissé la possibilité de régler la vitesse de défilement avec un coéficient.
Pearusdoancaia
Messages postés
71
Date d'inscription
mardi 21 mai 2019
Statut
Membre
Dernière intervention
14 janvier 2021
86
30 janv. 2020 à 13:50
30 janv. 2020 à 13:50
Oui, je ne me suis pas trop éternisé là dessus, j'ai sûrement fais n'importe quoi. Merci pour le code, ça me servira quand je voudrai implémenté cette mécanique du clique + ESPACE enfoncé.
Whismeril
Messages postés
19027
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 avril 2024
931
30 janv. 2020 à 16:22
30 janv. 2020 à 16:22
De rien
26 janv. 2020 à 11:19
Bon, le truc de déplacer les ScrollBar avec le déplacement de la souris bug un peu, elles clignotes, vont au début et reviennent à l'endroit voulu, quand on relâche tout on a une chance sur deux de tomber sur le début ou l'endroit voulu puis, si on arrive à l'endroit voulu et qu'on veut se redéplacer elles reviennent au début. Mais bon, en soit, pour une version simplifié de ce que je veux faire ça me va de me déplacer en cliquant sur les barres.