Décalage des UserControls dans un Panel [Résolu]

Signaler
Messages postés
107
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
-
Messages postés
107
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
-
Bonjour,

Dans un Panel, j'ajoute des UserControls (UC) l'un en dessous de l'autre à mesure des saisies.
Je contrôle la position du nouvel UC par un simple:

Me.Top=Num*(Me.Height+1)

Num étant le N° de UC de base 0.

Tout fonctionne parfaitement jusqu'à l'apparition du ScrollBar vertical où mes UC s'écartent de plus en plus.

Quelqu'un aurait-il une solution à ce problème?

Merci.
--

2 réponses

Messages postés
14737
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 novembre 2020
148
Bonjour,

Essayes d'utiliser la propriété Dock peut être.
Il te faudra peut être jouer sur l'ordre des contrôles, mais ça sera nettement plus propre.
Messages postés
107
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
1
Bonjour NHenry,

Merci pour cette rapide réponse. Malheureusement, l'utilisation de la propriété Dock ne m'aidera pas.

À force d'acharnement, j'ai fini par trouver la solution au problème qui est, somme toute, très simple et que je donne à ceux qui seraient intéressés avec grand plaisir.

En fait, je me suis aperçu que lorsque le scrollbar apparaissait, la valeur Top de l'UC n'augmentait plus et restait en dessous d'une valeur limite; celle du Width du Panel.
Fort de ce constat, j'ai cherché et trouvé une propriété du scrollbar qui ne variait que lorsqu'elle apparaissait.

La voici:
VerticalScroll.Value


Du coup, le code permettant de positionner correctement la propriété Top de l'UC devient:
MonUC.Top=Num*(MonUC.Heigth-1)-MonPanel.VerticalScroll.Value


C'en est presque magique... ;-)
--
Messages postés
107
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
16 janvier 2019
1
Correctif:
La valeur est celle du Height et non le Width du Panel.

Avec toutes mes excuses... :-p