Déplacer scrollbar par programmation

Résolu
cs_elaene Messages postés 9 Date d'inscription vendredi 11 septembre 2009 Statut Membre Dernière intervention 31 janvier 2021 - 12 janv. 2012 à 15:03
cs_elaene Messages postés 9 Date d'inscription vendredi 11 septembre 2009 Statut Membre Dernière intervention 31 janvier 2021 - 2 févr. 2012 à 13:44
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

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
12 janv. 2012 à 17:50
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
3
madkeyboard Messages postés 100 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 21 décembre 2012 1
23 janv. 2012 à 10:08
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 !
1
cs_elaene Messages postés 9 Date d'inscription vendredi 11 septembre 2009 Statut Membre Dernière intervention 31 janvier 2021
31 janv. 2012 à 11:17
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 :)
0
cs_elaene Messages postés 9 Date d'inscription vendredi 11 septembre 2009 Statut Membre Dernière intervention 31 janvier 2021
31 janv. 2012 à 11:43
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à...
0

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

Posez votre question
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
31 janv. 2012 à 14:49
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
0
cs_elaene Messages postés 9 Date d'inscription vendredi 11 septembre 2009 Statut Membre Dernière intervention 31 janvier 2021
2 févr. 2012 à 13:44
C'est bon j'ai compris et j'ai réussis, merci bien =)
0