标签位置应固定并向左增长

时间:2011-02-18 16:42:36

标签: vb.net winforms

即使标签有不同的长度,我怎样才能将标签设置为右侧对齐。 我有一组标签,它们彼此相邻,也在彼此之下。
现在的问题是它们总是从标签行的左侧对齐,但我需要它们在右边对齐,因为它们显示来自其他行的总和。

只是为了验证我不是在谈论文本对齐我正在寻找一个解决方案来对齐我的标签。

提前致谢

4 个答案:

答案 0 :(得分:29)

只需在设计器中将AutoSize属性设置为False即可。调整大小以适合列。然后将TextAlign设置为右对齐之一。

答案 1 :(得分:6)

您应该可以在运行时使用以下代码执行此操作:

'find the current right alignment position
Dim rightAlign As Integer = Label1.Left + Label1.Width
'set the text (assumes AutoSize is set to True)
Label1.Text = value
'adjust position so the right hand point is in the same position as before
Label1.Left = rightAlign - Label1.Width

答案 2 :(得分:1)

我的方法更奇怪。我创建标签,然后在为报告布置字段时调整要正确对齐的数字(等)的标签 注意:所有标签都以'lbl'结尾 - txtNew是报告列文本框。 - 获取列的左边缘加上列的宽度减去标签的宽度。作品!这不是我最喜欢的方式。

    ' *** NEED TO CALC POSITION FOR RIGHT JUSTIFY OF LABEL !!!!!
    If ShouldRightJustify(rs.Fields(i).Type) Then
        rpt.Section(acPageHeader).Controls(rs.Fields(i).Name & "lbl").Left = _
            (lblCol + txtNew.Width) _
            - rpt.Section(acPageHeader).Controls(rs.Fields(i).Name & "lbl").Width
        End If

答案 3 :(得分:0)

如果您询问如何从设计器执行此操作,请使用“格式菜单”。 选择要对齐的所有控件,然后单击要对齐的控件。格式化>对齐>版权

如果您尝试在运行时执行此操作,则可以遍历要对齐的控件并根据宽度设置其.X属性。例如。对齐标签,使其右侧为X = 200 ...... SomeLabel.X = 200 - SomeLabel.Width。