Scroller automatiquement sur un Panel

Résolu
Shaegal Messages postés 110 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 12 mai 2021 - 11 juin 2013 à 15:23
ucfoutu Messages postés 18038 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
A voir également:

7 réponses

foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
11 juin 2013 à 16:10
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"))
3
Shaegal Messages postés 110 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 12 mai 2021 1
12 juin 2013 à 10:19
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?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 juin 2013 à 10:34
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.
0
Shaegal Messages postés 110 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 12 mai 2021 1
12 juin 2013 à 11:07
Bonjour ucfoutu,

J'ai testé ton idée mais ça ne marche pas... :-(
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 juin 2013 à 11:13
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.
0
Shaegal Messages postés 110 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 12 mai 2021 1
12 juin 2013 à 13:16
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 juin 2013 à 16:10
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.
0
Rejoignez-nous