Выравнивание текста в текстовом поле в VBA - странное поведение

Я пытаюсь выровнять текст в текстовом поле по правой стороне. Либо через кодTextBox.TextAlign = fmTextAlignRight или установив свойство "напрямую".

К сожалению, он выравнивается по левому краю, как только текст (строка) становится слишком большим для полного отображения в текстовом поле. Как в этом примере, в котором есть все буквы от a до z (abcdefghijklmnropqrstuvwxyz) и должен быть выровнен по правому краю, но это не так:

Должно получиться так:

Есть идеи, как изменить это поведение / как заставить выравнивание? Благодарность!

1 ответ

Наверное, это TextBox имеет собственность Enabledустановлено значение false. Вам нужно включить его, а затем TextAlignнедвижимость будет работать так, как вы пожелаете. Также вы можете использовать эту функцию:

      Public Function SetTextBox(itm1 As MSForms.textbox, ByVal txtAlign1 As MSForms.fmTextAlign)
    Dim notEnabled1 As Boolean
    If Not itm1.Enabled Then itm1.Enabled = True: notEnabled1 = True
    itm1.SetFocus
    itm1.TextAlign = txtAlign1
    itm1.SelStart = Len(itm1.Text)
    If notEnabled1 Then itm1.Enabled = False
End Function
Другие вопросы по тегам