Scroller automatiquement sur un Panel [Résolu]

Messages postés
118
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
- 12 juin 2013 à 16:10
Bonjour à tous,

J'ai un panel dans lequel sont ajoutés dynamiquement 13 UserControl, représentants les mois de l'année en cours + janvier de l'année suivante, alignés horizontalement.

J'aimerai, au démarrage de l'application, que le Panel scroll jusqu'au début du mois en cours. Par exemple, nous sommes aujourd'hui le 11 juin, alors le Panel devrait scroller jusque l'UserControl juin.
Chaque UserControl porte un name spécifique et j'en connais leur position exacte.

Fort de ces paramètres, m'est-il possible de scroller automatiquement? Et si oui, commment?

PS: je précise que dans le Panel, j'ai ajouté un SplitContainer et le calendrier se trouve dans SplitContainer1.Panel2
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
423
Date d'inscription
vendredi 17 novembre 2006
Statut
Membre
Dernière intervention
15 juillet 2014
4
3
Merci
Bonjour,

Si la propriété "AutoScroll" de votre panel est a True, vous pouvez utiliser "ScrollControlIntoView".
Par exemple, je veux rendre visible "Bouton1" dans le panel "MonPanel"
Me.MonPanel.ScrollControlIntoView(Me.Bouton1)

Exemple avec le nom du controle à affichier
Me.MonPanel.ScrollControlIntoView(Me.MonPanel.Controls("Bouton1"))

Attention, avec l'accès par nom, si le contrôle est dans un Sous-conteneur, il faut le chercher comme ceci
Me.MonPanel.ScrollControlIntoView(Me.MonPanel.MonSousConteneur.Controls("Bouton1"))

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 159 internautes nous ont dit merci ce mois-ci

Commenter la réponse de foliv57
Messages postés
118
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
1
0
Merci
Salut foliv57 et merci beaucoup pour ta réponse car c'est exactement ce que je voulais faire à un détail près, mais là je chipote.

En effet, le contrôl est câlé à droite du panel et il serait mieux qu'il le soit à gauche.
As-tu une solution à ça?
Commenter la réponse de Shaegal
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
207
0
Merci
Bonjour,
une idée simple :
1) ru "scroll" sur le dernier bouton
puis
2) tu "rescroll" sur le premier (de ton choix)


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
118
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
1
0
Merci
Bonjour ucfoutu,

J'ai testé ton idée mais ça ne marche pas... :-(
Commenter la réponse de Shaegal
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
207
0
Merci
Il va alors te falloir mettre tes boutons dans un container de ton choix et y déplacer tes boutons vers la gauche comme souhaité (calcul arithmétique à faire)


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
118
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
1
0
Merci
En fait, tous mes UserControls (UC) sont mis bout-à-bout en ligne. Donc, si j'en déplace un, je dois déplacer tous les autres. Ou alors placer les UC directement en fonction du mois en cours, c'est-à-dire qu'aujourd'hui, juin aura sa position Left à 0. Ça implique que les mois précédents verront leur position Left en valeur négative. Est-ce génant?

Après, c'est juste une question esthétique, sans importance pour le bon fonctionnement de l'application.
Commenter la réponse de Shaegal
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
207
0
Merci
Donc, si j'en déplace un, je dois déplacer tous les autres

pas si tous ces boutons sont placé à l'intérieur d'un conteneur (comme je te l'ai dit), lui-même mis dans un conteneur
soit toto ce conteneur, mis dans un conteneur titi ===>>
toto.Left = -bouton2.Left + marge
(ou marge serait la marge voulue à gauche)
suffira pour que bouton2 soit le premier visible à gauche (+ marge) du conteneur titi

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu