Положение метки должно фиксироваться вправо и расти влево

Как настроить ярлыки для выравнивания справа, даже если они имеют разные длины. У меня есть набор меток, которые встречаются рядом друг с другом, а также под друг другом.
Проблема в том, что они всегда выравниваются слева в строке метки, но мне нужно, чтобы они выравнивались справа, когда они отображали суммы из других строк.

Только для проверки Я не говорю о выравнивании текста Я ищу решение для выравнивания моих меток.

Заранее спасибо

Ответы

Ответ 1

Просто установите для свойства AutoSize значение False в конструкторе. Отрегулируйте размер, чтобы он соответствовал колонке. Затем установите TextAlign в одно из выравнивающих.

Ответ 2

Вы должны иметь возможность сделать это во время выполнения, используя следующий код:

'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

Ответ 3

Если вы спрашиваете, как это сделать от дизайнера, используйте меню "Формат". Выделите все элементы управления, которые вы хотите выровнять, затем щелкните элемент управления, к которому вы хотите привязать другой. Выберите "Формат" > "Выровнять" > "Права".

Если вы пытаетесь сделать это во время выполнения, вы можете пропустить элементы управления, которые хотите выровнять, и установить их .X свойство в соответствии с их шириной. Например. Чтобы выровнять ярлык так, чтобы его правая сторона была равна X = 200... SomeLabel.X = 200 - SomeLabel.Width.

Ответ 4

Мой метод еще более странный. Я создаю ярлыки, а затем, когда выкладываем поля для отчета, настраивайте метки для числа (и т.д.), Которые должны быть выровнены по правому краю Примечание: все метки заканчиваются на '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