2010-12-03 8 views
95

WinFormsでは、私は中央の形でそのラベルを中央にしたいのですが、成功、失敗などラベルはWinFormsの中央に置かれますか?

のような異なるメッセージを表示するようにLabelを使用しています。私は、ラベルにただ1つの単語または全体の文があるかどうかを中心にしておくソリューションを求めています。

答えて

187

設定LabelFalseからAutoSize財産、MiddleCenterTextAlign財産とFillからDockプロパティ。

+0

decycloneに感謝します。 Dockが何をするのかガイドできますか? – haansi

+3

'Control.Dock'プロパティ(http://msdn.microsoft.com/en-us/library/system.windows.forms.control.dock.aspx)を使用すると、コントロールを特定の側にドッキング(スティック)できますの容器。たとえば、「左」、「上」、「右」または「下」。 'Fill'はコンテナ内の利用可能なスペースをすべて取るようコントロールに指示します。 – decyclone

+0

フォントサイズを伸ばすための手口はありますか? – Edmondo1984

8

プロパティを設定することで実現します。アンカー:なし

9

プログラムで設定するためのいくつかのマイナーな追加コンテンツ:

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

Dockstyleとコンテンツアライメントがニーズと異なる場合があります。たとえば、wpfフォームのシンプルなラベルの場合は、DockStyle.Noneを使用します。

5

利用可能な領域全体にラベルをドッキングしたくない場合は、TextChangedの代わりにSizeChangedイベントを設定するだけです。各文字を変更すると、autosizeプロパティがTrueに設定されている場合、ラベルの幅プロパティとテキストが変更されます。つまり、どのような数式を使っても、ラベルをフォームの中央に置くことができます。

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