2010-07-22 238 views
6

我有一个标签,我想右对齐,以便能够对齐到一个文本框。
在Visual Studio 2010速成的设计已经产生此代码为我.NET Label.TextAlign似乎不工作

this.lblAddData.AutoSize = true; 
this.lblAddData.Location = new System.Drawing.Point(167, 452); 
this.lblAddData.Name = "lblAddData"; 
this.lblAddData.Size = new System.Drawing.Size(25, 14); 
this.lblAddData.TabIndex = 5; 
this.lblAddData.Text = "text"; 
this.lblAddData.TextAlign = System.Drawing.ContentAlignment.MiddleRight; 

[文字] [文本] 在代码中,我改变文本programmaticly

lblAddData.Text = "a very long text"; 

但文本躲在后面我放置在
右侧的标签旁边的texbox。

[a ver] [textbox]

有人遇到同样的问题吗?
我知道它缺少信息,所以问我是否需要更多信息。
问候
Görgen

回答

14

好吧,我自己发现了错误; AutoSize设置为true,这是默认行为

this.lblAddData.AutoSize = true; 

当我将其更改为false时,它的工作原理与我所设想的一样。

3

TextAlign属性控制文本如何在标签内排列:

获取或设置标签文本的对齐方式。

如果更改文本的长度,则需要重新计算总是左上角的标签的Location

我发现这个Code Project article其中,而可能在上面你想要的东西,说:

此外,如果你要更改标签文本(例如,本地化应用程序时)或文本对齐,您必须调整大小/重定位控件。因此,我创建了这个简单的标签来处理这些细节。

(我的粗体)

所以,你可以使用相同的算法来重新定位标签。

+2

/facepalm真的是微软?真? – 2011-03-12 04:59:41