J'ai besoin d'un moyen de centrer la fenêtre actuelle. Ainsi, par exemple, si un utilisateur appuie sur un bouton, je veux que la fenêtre se centre à l'écran. Je sais que vous pouvez utiliser la propriété startposition, mais je ne peux pas trouver un moyen de l'utiliser autre que lorsque l'application démarre pour la première fois. Alors, comment centrer le formulaire sur l'écran?
129
Réponses:
Utilisez la méthode Form.CenterToScreen () .
la source
Utilisation de la fenêtre Propriétés
Sélectionnez le formulaire → allez dans la fenêtre des propriétés → sélectionnez "position de départ" → sélectionnez l'endroit que vous voulez.
Programmation
Form form1 = new Form(); form1.StartPosition = FormStartPosition.CenterScreen; form1.ShowDialog();
Remarque: n'appelez pas directement Form.CenterToScreen () à partir de votre code. Lisez ici .
la source
Une seule ligne:
la source
Screen screen = Screen.FromControl(this);
ici.Screen.FromControl(this)
mais je les gardePrimaryScreen
. (Je développe une application sous contrainte matérielle) :-)Dans Windows Forms:
Dans WPF:
C'est tout ce que vous avez à faire ...
la source
Si vous souhaitez centrer vos fenêtres pendant l'exécution, utilisez le code ci-dessous, copiez-le dans votre application:
Et enfin, appelez la méthode ci-dessus pour la faire fonctionner:
la source
this.Location = Screen.AllScreens[0].WorkingArea.Location;
avant, les autres réponses ne fonctionnent pas dans le cas d'un déplacement d'application lors de l'utilisation de plusieurs écrans.Centrage d'un formulaire au runtime
1.Définissez la propriété suivante de Form:
-> StartPosition: CenterScreen
-> WindowState: Normal
Cela centrera le formulaire au moment de l'exécution, mais si la taille du formulaire est plus grande que prévu, effectuez la deuxième étape.
2. Ajoutez une taille personnalisée après InitializeComponent ();
la source
Centre toutes les fenêtres dont vous pouvez vous servir
la source
Utilisez ceci:
la source
Utilisez la propriété Location du formulaire. Réglez-le sur le point supérieur gauche souhaité
désiré x = (largeur_du_ bureau - form_witdh) / 2
souhaité y = (desktop_height - from_height) / 2
la source
Vous pouvez utiliser le
Screen.PrimaryScreen.Bounds
pour récupérer la taille du moniteur principal (ou inspecter l'Screen
objet pour récupérer tous les moniteurs). Utilisez ceux avecMyForms.Bounds
pour savoir où placer votre formulaire.la source
Peut-être pas tout à fait pertinent pour la question. Mais peut-être peut aider quelqu'un.
L'écran central ne fonctionne pas pour moi. La raison était que j'ajoutais des contrôles dynamiquement au formulaire. Techniquement, quand il était centré, il était correct, basé sur le formulaire avant d'ajouter les contrôles.
Voici donc ma solution. (Devrait fonctionner avec les deux scénarios)
Vous remarquerez donc que j'utilise "PreferredSize" au lieu de simplement utiliser Hauteur / Largeur. La taille préférée contiendra la valeur du formulaire après l'ajout des contrôles. Là où la hauteur / largeur ne le sera pas.
J'espère que cela aide quelqu'un.
À votre santé
la source
En cas de multi-moniteur et si vous préférez vous centrer sur le bon moniteur / écran, vous voudrez peut-être essayer ces lignes:
la source