Controle et frame toujours bien positionnés ?

cmelmel Messages postés 6 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 4 novembre 2006 - 4 nov. 2006 à 00:27
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 4 nov. 2006 à 02:24
Bonjour,
j'aimerais que mes contrôles et frame soient toujours positionnés au même endroit quelque soit la taille de l'écran.
par exemple toujours en bas à droite
 
merci pour votre aide.
A+
Cml

2 réponses

ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
4 nov. 2006 à 01:55
C'est le BABA mon cher. Il faut utiliser les PropriétésScaleWidth et ScaleHeight de ta fenêtre dans la procédure événementielleForm_Resize en mettant la propriétéScaleMode sur Pixel (c'est plus pratique !!!)

Private Sub Form_Resize()
 'Positionne ton contrôle (bouton et cie) en bas à droite de la fenêtre
 controlMachin.Top = Me.ScaleHeight - controlMachin.Height
 controlMachin.Left = Me.ScaleWidth - controlMachin.Width
End Sub

Notes :
" controlMachin " étant le nom de ton contrôle, c'est à dire, ton bouton, ton champ de texte, ...
".Top" étant la propriété te renvoyant la position verticale de ton controle sur ta feuille (le Y si tu préfère)
".Left" étant celle de la position horizontale (le X)
".Width" étant la longueur de ton controle (toujours par rapport à l'unité [le twip par défaut] de la fenêtre [et dans la fenêtre])
".Height" étant la hauteur.
".ScaleMode" étant l'unité d'affichage de ta fenêtre. Par défaut c'est en Twips. 1 Pixel = généralement 15 Twips (mais ça dépend du PixPerTwip...). Il vaut donc mieux tout de suite mettre en pixels. Mais attentions, les coodonnées de ta fenêtre par rapport à l'écran (propriétés .Top, .Left, .Height et .Width des fenêtres) sont toujours en Twips car c'est l'unité de travail de Windows.
"Me" pointant (faisant référence, si tu préfères) automatiquement sur le nom de ta fenêtre quel qu'il soit (ainsi, tu peux changer le nom de ta fenêtre après coup sans devoir modifier tout ton code [modifié avec l'outils "Remplacer" de VB, et pas à la main, on est pas des nanimaux !!!]).

Ceci dit, si tu t'étais donné la peinne une seule seconde de consulter l'aide du VB, tu saurais tout ça !!!
Pi pense bien, lorsque tu poses une question sur le forum à spécifier le langage que tu utilises (VBA, VB6, VBS, VB5, ...) ainsi que sa version

Enjoy

<hr width="100%" size="2" />
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )/FONT>
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
4 nov. 2006 à 02:24
je dirais même mieux:

Private Sub Form_Resize()
    With controleMachin: .Move Me.ScaleWidth - .Width, Me.ScaleHeight - .Height: End With
End Sub

Daniel
0
Rejoignez-nous