Déplacer scrollbar par programmation

[Résolu]
Signaler
Messages postés
9
Date d'inscription
vendredi 11 septembre 2009
Statut
Membre
Dernière intervention
31 janvier 2021
-
Messages postés
9
Date d'inscription
vendredi 11 septembre 2009
Statut
Membre
Dernière intervention
31 janvier 2021
-
Bonjour.
J'ai besoin de déplacer des scrollbar automatiquement par programmation pour parcourir une tabpage et la transformer en image (aucun autre moyen possible de le faire).
Savez-vous donc comment changer les localisations en pixel des scrolls? J'ai essayer ça mais ça ne marche pas;

maTabPage.VerticalScroll.Value = 100;
maTabPage.HorizontalScroll.Value = 100;


Merci!

6 réponses

Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Salut,

il faut utiliser la propriété AutoScrollPosition du TabPage.
Dans l'exemple suivant, la ligne de code fait scroller la tab tout en bas :
tabPage.AutoScrollPosition = new Point(0, tabPage.VerticalScroll.Maximum);


A noter que le maximum n'est pas nécessairement 100, car il ne s'agit pas d'un pourcentage mais d'une position réelle. Il faut donc travailler avec des ratio de Maximum.

Bon code
Messages postés
100
Date d'inscription
mercredi 27 avril 2011
Statut
Membre
Dernière intervention
21 décembre 2012
1
Salut,

A noter une autre solution, un peu plus bâtarde, et que l'on doit faire chaque fois que désiré (non automatique), mais qui a son efficacité : on utilise la fonction ScrollToCaret() en définissant au préalable la position du "caret" ( = position du curseur).

Moi je l'utilise comme suit :
maTabPage.SelectionStart = maTabPage.TextLength;
maTabPage.ScrollToCaret();

=> On défini la sélection (et donc le curseur) à la fin du texte, puis on fait le scroll jusqu'au curseur. On peu ensuite définir la position du curseur en faisant une recherche de texte, pour descendre l'ascenseur à un point précis du texte.

C'est utile notamment pour les contrôles n'ayant pas de propriété "AutoScrollCaret", ni "VerticalScroll" (ex les richTextBox !).

J'espère que ça en aidera certains !
Messages postés
9
Date d'inscription
vendredi 11 septembre 2009
Statut
Membre
Dernière intervention
31 janvier 2021

Le problème de la seconde solution est que ma tabpage ne contient pas du texte mais des éléments (graphiques entre autres) représentant un MCD... Je vais donc essayer avec la solution de jopop, que j'avais déjà essayé sans savoir que le max se changeait! Je croise les doigts! Merci pour vos réponses :)
Messages postés
9
Date d'inscription
vendredi 11 septembre 2009
Statut
Membre
Dernière intervention
31 janvier 2021

J'aimerai juste quelques précisions sur le autoscrollposition : est-ce que ça déplace le scrollbar à une autre position (genre 200 px horizontal et 300px vertical) ou est-ce que ça enlève à la position de départ des pixels pour déplacer le scroll (car j'ai des valeurs négatives en essayant avec le max donc il me semble que c'est ça), et dans ce cas, comment mettre dès le départ le scroll tout en haut à gauche (dans le cas où l'utilisateur l'ai déplacé de lui-même)?
Je sais c'est compliqué et je commence à galérer sévère avec ces scrolls >_< mais obligé de passer par là...
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Re,

quand tu as un nom de namespace/class/méthodes/propriété, pour avoir des précisions, il suffit alors de demander à la MSDN. Si y'a un truc qui est vraiment super avec les techno Crosoft c'est bien ça ;)

Voilà le lien : AutoScrollPosition
L'information que tu cherches est dans l'encart "Note".

Je suis pas sûr de bien avoir compris ta dernière question, mais en gros ma ligne de code t'enverra toujours en bas à gauche de ton Scrollable. Le set de AutoScrollPosition est un déplacement de (X;Y) depuis (0;0), peu importe où sont les scrollbars au moment du setting.

Bon dev
Messages postés
9
Date d'inscription
vendredi 11 septembre 2009
Statut
Membre
Dernière intervention
31 janvier 2021

C'est bon j'ai compris et j'ai réussis, merci bien =)