Comment conserver une étiquette centrée sur WinForms?

Dans WinForms j’utilise une Label pour afficher différents messages tels que le succès, l’échec, etc.

Je voudrais centrer cette étiquette dans la forme centrale. Je veux une solution qui restra centrée, qu’il y ait juste un mot ou une phrase entière dans l’étiquette.

Définissez AutoSize propriété AutoSize Label sur False , la propriété MiddleCenter sur MiddleCenter et la propriété Dock sur Fill .

Vous le réaliserez avec la définition de la propriété Anchor: None.

Quelques contenus supplémentaires mineurs pour la programmation:

 Label textLabel = new Label() { AutoSize = false, TextAlign = ContentAlignment.MiddleCenter, Dock = DockStyle.None, Left = 10, Width = myDialog.Width - 10 }; 

L’alignement Dockstyle et Content peut différer de vos besoins. Par exemple, pour une étiquette simple sur un formulaire wpf, j’utilise DockStyle.None.

Si vous ne souhaitez pas ancrer l’étiquette dans toute la zone disponible, définissez simplement l’événement SizeChanged au lieu de TextChanged. La modification de chaque lettre modifie la propriété width de label ainsi que son texte lorsque la propriété autosize a la valeur True. Donc, en passant, vous pouvez utiliser n’importe quelle formule pour garder l’étiquette centrée dans la forme.

 private void lblReport_SizeChanged(object sender, EventArgs e) { lblReport.Left = (this.ClientSize.Width - lblReport.Size.Width) / 2; }