Значение по умолчанию текстового поля пользовательской формы VBA и выделено

В своей пользовательской форме я хочу установить значение по умолчанию для своего текстового поля, которое будет выделяться при фокусировке.

Private Sub UserForm_Initialize()

NameTextBox.Value = "Your Name Here"

NameTextBox.SetFocus

End Sub

Когда этот код запускается, курсор должен быть установлен в конце текста по умолчанию, то есть после «... Здесь». Я хочу, чтобы «Ваше имя здесь» было выделено, чтобы при создании формы пользователь мог начать заменять этот текст по умолчанию / заполнитель.

Можете ли вы помочь мне написать код для установки значений по умолчанию, которые можно редактировать?


person blahblahblah    schedule 15.01.2014    source источник


Ответы (3)


Это выделит весь текст в TextBox:

Private Sub UserForm_Initialize()
With Me.NameTextBox
    .Value = "Your Name Here"
    .SetFocus
    .SelStart = 0
    .SelLength = Len(.Text)
End With
End Sub
person Doug Glancy    schedule 15.01.2014

Установите для свойства EnterFieldBehavior значение frmEnterFieldBehaviorSelectAll, чтобы при переходе фокуса на это поле выделялось все поле.

person MBGtips    schedule 12.05.2015

как насчет этой строки кода, когда ваша форма загружается?

NameTextBox.SelectAll()
person nabinchha    schedule 15.01.2014
comment
Когда я добавляю этот фрагмент кода в последнюю строку, я получаю Compile Error: Expected: = - person blahblahblah; 15.01.2014
comment
bfs1990 сказал в чем ошибка. Чтобы быть более конкретным, текстовое поле Userform не имеет метода SelectAll. Я проголосовал против этого ответа. - person Doug Glancy; 15.01.2014
comment
ах извините за путаницу. Я предположил, что используемое текстовое поле находится в пространстве имен System.Windows.Forms. ссылка - person nabinchha; 16.01.2014