Comment centrer une fenêtre à l'écran ?
Il faut distinguer 2 cas :
- Placement d'une feuille "normale" (SDI = Single Document Interface)
- Placement d'une feuille MDI (MDI = Multiple Document Interface)
Pour centrer automatiquement une feuille SDI, il suffit d'attribuer la valeur 2 (CenterScreen) à la propriété StartupPosition de la feuille.
Ceci se fait simplement au moment de la creation de la feuille dans l'IDE. A noter que l'usage de cette propriété
n'est pas autorisé lors de l'exécution.
Si on a besoin de faire cette opération lors de l'exécution, il faut le faire par programmation.
Le code pour faire cela est très simple :
Me.Left = (Screen.Width - Me.Width) \ 2 Me.Top = (Screen.Height - Me.Height) \ 2
Pour centrer automatiquement une feuille MDI, la seule solution est la solution par programmation.
Ceci se fait de façon très similaire à ce que nous avons fait pour la feuille SDI :
Sub CenterChild(Parent As Form, Child As Form)
Dim iTop As Integer Dim iLeft As Integer If Parent.WindowState <> vbNormal Then Exit Sub Else iTop = ((Parent.Height - Child.Height) \ 2) iLeft = ((Parent.Width - Child.Width) \ 2) Child.Move iLeft, iTop End If End Sub
Et l'appel correspondant :
Call CenterChild(Me, frmD)
|