Astuces de recherche...
Home
- Accueil & nouveautés
- Les newsgroups VB
- Téléchargements
- L'équipe
- Nous contacter
- Liens
Rubriques
- Toutes les questions
- Affichage & graphismes
- Algorithmique
- API
- Base de registre
- Bases de données
- Contrôles
- Date & heure
- Déploiement
- Divers
- Erreurs & problèmes
- Fichiers & dossiers
- Généralités
- Impression
- Internet & mails
- Math
- Multimédia
- Réseaux
- Structures de données
- Texte & strings
- VB .Net
- VB Script
- VBA
- Windows

Question 136

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)

Date de publication : 19 novembre 2006
Dernière modification : 19 novembre 2006
Rubriques : Affichage & graphismes
Mots-clés : centrer,positionnement,fenêtre,StartUpPosition,WindowState,centrage,centre