Centrer une form à l'écran

Résolu
ericdu93
Messages postés
56
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
28 août 2008
- 6 mars 2008 à 19:34
 Le programmeur Breton - 17 nov. 2017 à 10:30
Bonjour,

j'ai un premier form qui s'affiche par défaut en haut à gauche (sans être collé au bord), lorsque dans cette fenetre j'ouvre une deuxème fenetre (j'instancie une nouvelle form), celle ci est placé aussi à l'endroit de la 1ère fenetre mais décalé de 20pixel je dirais vers la droite et vers le bas.

donc finalement je me dis autant afficher les deux fenêtres au millieu mais comment faire ? J'ai pensé à faire quelque chose comme ca:

 frm.Top = Screen.Height / 2 - frm.Height / 2
 frm.Left = Screen.Width / 2 - frm.Width / 2

or je n'ai pas accès à la propriété Height ni à Width lorsque je fais Screen.

Merci d'avance.

6 réponses

sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
6 mars 2008 à 20:44
dans le designer il suffit de mettre la bonne valeur dans le propertygrid...

ou alors, si tu veux le faire dans le code, tu le fais dans le constructeur

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
3
sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
6 mars 2008 à 19:51
et pourquoi ne pas utiliser la propriété StartPosition = FormStartPosition.CenterParent;

(ou CenterScreen)

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
1
Le programmeur Breton
17 nov. 2017 à 10:30
Merci Beaucoup, effectivement c'est une excellente réponse.
0
ericdu93
Messages postés
56
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
28 août 2008
1
6 mars 2008 à 20:28
Merci ca marche lorsque j'instancie une nouvelle form.

Par contre quand c'est ma première form qui démarre, j'utilise bien la propriété StartPosition dans le Load de la form, ca ne marche pas, pourquoi ?
0
benpolice
Messages postés
4
Date d'inscription
dimanche 20 novembre 2005
Statut
Membre
Dernière intervention
16 mai 2011

4 juin 2009 à 14:00
il suffit de surcharger le OnLoad() de ton formulaire

protected override void OnLoad(EventArgs e)
        {
            base.OnLoad (e);

            this.Location = new System.Drawing.Point(
                System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width / 2 - Width / 2,
                System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height / 2 - Height / 2);

        }
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
14 février 2014
38
4 juin 2009 à 14:12
hmm... c'était bon en VB6 ça !

aujourd'hui on utilise des outils modernes !

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
0
cs_Bidou
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Membre
Dernière intervention
20 juin 2013
59
4 juin 2009 à 14:32
lol

<hr />
-Blog-
-Site Perso-
0