155 votes

Comment centrer une fenêtre à l'écran en c #?

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 autrement que lorsque l'application démarre pour la première fois. Alors, comment puis-je centrer le formulaire sur l'écran?

230voto

dzendras Points 2138

Utilisez la méthode Form.CenterToScreen

189voto

Nayana Adassuriya Points 2882

1. Utiliser la fenêtre de propriétés

Sélectionnez formulaire-> allez à la fenêtre de propriété -> sélectionnez "position de départ" -> sélectionnez le lieu de votre choix.

"

2. par programme

 Form form1 = new Form();
form1.StartPosition = FormStartPosition.CenterScreen;
form1.ShowDialog();
 

Remarque: N'appelez pas directement Form.CenterToScreen () à partir de votre code. lire ici

46voto

harveyt Points 150

Une seule ligne:

 this.Location = new Point((Screen.PrimaryScreen.WorkingArea.Width - this.Width) / 2,
                          (Screen.PrimaryScreen.WorkingArea.Height - this.Height) / 2);
 

37voto

Saimon Points 101

En forme de Win:

this.StartPosition = FormStartPosition.CenterScreen;

En WPF:

this.WindowStartupLocation = WindowStartupLocation.CenterScreen;

c'est tout ce que vous avez à faire, ..

26voto

Sarsur.A Points 50

Si vous souhaitez centrer vos fenêtres pendant l'exécution, utilisez le code ci-dessous, copiez-le dans votre application:

 protected void ReallyCenterToScreen()
{
  Screen screen = Screen.FromControl(this);

  Rectangle workingArea = screen.WorkingArea;
  this.Location = new Point() {
    X = Math.Max(workingArea.X, workingArea.X + (workingArea.Width - this.Width) / 2),
    Y = Math.Max(workingArea.Y, workingArea.Y + (workingArea.Height - this.Height) / 2)};
}
 

Et enfin, appelez la méthode ci-dessus pour le faire fonctionner:

 ReallyCenterToScreen();
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X