Forum - Questions générale - Sujet n°790

[]
Nombre de membres 1 membre
Connectés : ( personne )
 

La Charte du Forum - La Charte du Forum

Forum - Forum
Questions générale - Questions générale


clos par 3Stone le 21/01/2018 : 23:18  Sujet n° 790  Centrer un formulaire

le 15/12/2017 : 09:05
par flomen

Anonyme

visiteur

Je recherche la solution pour centrer un formulaire2 (AcDialog) dans le centre d'un formulaire1 qui a été recadré c'est à dire que le formulaire1 n'occupe pas tout l'écran. J'ai spécifié la propriété Auto Centrer = Oui dans le formulaire2
Malgré cela, le formulaire2 est centré sur la taille de l’écran et non sur le centre du formulaire1
Merci pour vos suggestions

Ecrire à flomen  sujet clos  Haut

[]   

Réponse n° 1
--------
le 15/12/2017 : 14:07
par 3Stone

3Stone

Administrateur

Bonjour,

Comment ouvres-tu le second formulaire ?  par un bouton sur le formulaire1 ?

Cordialement,
Pierre (3Stone)
  clos par 3Stone le 21/01/2018 : 23:18  Haut
Réponse n° 2
--------
le 15/12/2017 : 17:43
par flomen

Anonyme

visiteur
Oui,
DoCmd.OpenForm "Formulaire2", acNormal, "", "", , acDialog Cordialement
  clos par 3Stone le 21/01/2018 : 23:18  Haut
Réponse n° 3
--------
le 15/12/2017 : 18:55
par 3Stone

3Stone

Administrateur

Bonjour,

Ok.
En fait le fomulaire2 ne sait pas ou se trouve le formulaire1.
Il faut donc lui dire...

Pour cela, tu place dans le code du formulaire le code suivant:

'/position et taille du formulaire
Dim sFrmPos As String
sFrmPos = Me.WindowLeft & "," & Me.WindowWidth & "," & Me.WindowTop & "," & Me.WindowHeight

 Puis, tu complète ta commande OpenForm...

DoCmd.OpenForm "formulaire2", , , , , acDialog, sFrmPos
et tu sauve.

Ouvre ton "formulaire2" et dans l'événement "Sur ouverture" tu mets :

    Dim SrcPos As Variant
    Dim SrcL As Long, SrcW As Long, SrcT As Long, SrcH As Long
    Dim MeL As Long, MeW As Long, MeT As Long, MeH As Long
    'récupérer les valeurs dans un tableau
    SrcPos = Split(Me.OpenArgs, ",")
    MeW = Me.WindowWidth
    MeH = Me.WindowHeight
    MeL = SrcPos(0) + ((SrcPos(1) / 2) - (MeW / 2))
    MeT = SrcPos(2) + ((SrcPos(3) / 2) - (MeH / 2))
    'positionner le formulaire
    Me.Move MeL, MeT

 
C'est tout, mais fais attention au copié/collé du code ici !!

Dis moi si cela fonctionne...

Pierre (3Stone)

  clos par 3Stone le 21/01/2018 : 23:18  Haut
Réponse n° 4
--------
le 16/12/2017 : 10:13
par flomen

Anonyme

visiteur
Merci beaucoup pour ta solution qui fonctionne très bien, ce n'était pas évident
Cordialement
Ecrire à flomen   clos par 3Stone le 21/01/2018 : 23:18  Haut
actif sujet actif   clos sujet clos   Important! Important!   Nouveau Nouveau message   -   Rectifier Rectifier message   Clôturer Clôturer sujet   Remonter Remonter
[]
Catégories de discussion  Forum 



Haut