如何在Windows窗体代码隐藏中水平放置标签

时间:2013-08-16 07:51:23

标签: c# winforms label alignment

我有一个Windows表单,我想从code-behind操作。换句话说:

我可以做这样的事情:

myForm.TheLableThatIWantToPosition.Text = "Some text!";

myForm.TheLableThatIWantToPosition.ForeColor = Color.Red;

etc. 

但是,我怎么能在水平上定位呢?我想横向居中。

我尝试了:

myForm.TheLableThatIWantToPosition.TextAlign = ContentAlignment.MiddleCenter;

以及所有其他选项,但它不会发生。

2 个答案:

答案 0 :(得分:2)

如果您想在标签中居中对齐内容 -

AutoSize = false;
TextAlign = MiddleCenter;

答案 1 :(得分:1)

您可以将此代码放在SizeChanged的<{1}}事件处理程序中:

label1.Parent

最好你应该做这样的事情:

if(label1.Parent != null){ //this if check may be removed if it's sure that Parent is not null
 label1.Left = (label1.Parent.Width - label1.Width)/2;
}

要动态制作它,例如你有一个类//SizeChanged event handler for your label1 private void label1_SizeChanged(object sender, EventArgs e){ label1.Left = (label1.Parent.Width - label1.Width)/2; } //SizeChanged event handler for your label1's Parent private void parent_SizeChanged(object sender, EventArgs e){ label1.Left = (label1.Parent.Width - label1.Width)/2; } //you can change label1.Parent with a control reference which you know it's the container of your label1. ,并且你希望它在默认情况下居中,只要它被放置/添加到另一个容器中:

CustomLabel