147 votes

C#: Centrage des commandes au sein d'un formulaire .NET (Winforms)?

Je suis en train de centre de taille fixe de contrôle dans un formulaire.

D'intérêt, est-il un non-idiot façon de faire cela? Ce que je veux vraiment est quelque chose d'analogue à l'text-align propriété css.

Pour le moment, je suis à la définition de la propriété padding les environs forme à une taille appropriée et en définissant la propriété Dock de contrôle à remplir.

268voto

splattne Points 48126

Vous pourriez réaliser avec l'utilisation des ancrages. Ou plus précisément de la non utilisation d'entre eux.

Les contrôles sont ancrés par défaut en haut à gauche de l'écran, ce qui signifie que lorsque la taille de formulaire sera changé, leur distance à partir du haut à gauche de la forme restera constante. Si vous modifiez le contrôle de l'ancrage à gauche en bas, le contrôle de conserver la même distance entre le bas et le côté gauche de l'écran lorsque le formulaire si redimensionnement.

La désactivation de l'ancre dans une direction permettra de garder le contrôle centré dans cette direction lors d'un redimensionnement.

121voto

Mitch Wheat Points 169614
myControl.Left = (this.ClientSize.Width - myControl.Width) / 2 ;
myControl.Top = (this.ClientSize.Height - myControl.Height) / 2;

49voto

Robert MacLean Points 18288

Puisque vous n'avez pas l'état, si la forme peut redimensionner ou non il est un moyen facile si vous n'avez pas de soins sur le redimensionnement (si vous ne les soins, rendez-vous avec Mitch Blés solution):

Sélectionnez le contrôle -> Format (option de menu) -> Centre de la Fenêtre -> Horizontalement ou Verticalement

9voto

Chad Points 51

J'ai trouvé une excellente façon de le faire et il travaillera avec de multiples contrôles. Ajouter un TableLayout avec 3 colonnes. Rendre le centre de la colonne une taille absolue (cependant beaucoup de place dont vous avez besoin). Ensemble les deux à l'extérieur des colonnes à 100%. Ajouter un Panneau à la colonne du centre et ajoutez tous les contrôles dont vous avez besoin et de les placer où vous le souhaitez. Que le centre du panneau va maintenant rester centré dans votre formulaire.

2voto

Droj Points 532

Vous pouvez placer la commande que vous voulez centrer à l'intérieur d'un Panneau et de l'ensemble de la gauche et de la droite, les valeurs de remplissage à quelque chose de plus grand que la valeur par défaut. Tant qu'ils sont égaux et votre commande est fixé sur les côtés du Panneau, puis il apparaîtra au centre de ce Panneau. Ensuite, vous pouvez ancrer le récipient de Panneau à son parent en tant que de besoin.

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