2010-12-03 4 views
95

In WinForms Ich verwende ein Label verschiedene Nachrichten wie Erfolg, Fehler anzuzeigen usw.Wie behalte ich ein Label in WinForms zentriert?

ich das Label in der Mitte Form zum Zentrum möge. Ich möchte eine Lösung, die es zentriert hält, ob nur ein Wort oder ein ganzer Satz auf dem Etikett steht.

Antwort

187

Set Label ‚s AutoSize Eigenschaft False, TextAlign Eigenschaft MiddleCenter und Dock Eigenschaft Fill.

+0

danke decyclone, es hat funktioniert. Kannst du erklären, was Dock tut? – haansi

+3

Mit 'Control.Dock'-Eigenschaft (http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dock.aspx) können Sie ein Steuerelement an eine bestimmte Seite andocken (stick) des Behälters. Zum Beispiel "Links", "Oben", "Rechts" oder "Unten". 'Fill' weist das Steuerelement an, den gesamten verfügbaren Speicherplatz im Container zu übernehmen. – decyclone

+0

Gibt es einen Trick, um die Schriftgröße zu strecken? – Edmondo1984

8

Sie erreichen es mit der Einstellung Eigenschaft Anker: Keine.

9

Einige kleinere zusätzliche Inhalte für die Einstellung programmatisch:

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

DockStyle und Content-Ausrichtung von Ihren Bedürfnissen unterscheiden. Zum Beispiel verwende ich für ein einfaches Label auf einem WPF-Formular DockStyle.None.

5

Wenn Sie das Etikett nicht im gesamten verfügbaren Bereich verankern möchten, legen Sie einfach das SizeChanged-Ereignis anstelle von TextChanged fest. Wenn Sie jeden Buchstaben ändern, ändert sich die Eigenschaft width des Labels sowie der Text, wenn die Eigenschaft für die Größenanpassung auf True gesetzt ist. So können Sie übrigens jede Formel verwenden, um das Label zentriert in Form zu halten.

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