Очистить текст в текстовом поле после нажатия на него - PullRequest
6 голосов
/ 01 ноября 2010

У меня есть текст в текстовом поле с надписью «НОВОЕ ИМЯ ЗДЕСЬ»

Можно ли в VBA очистить этот текст, как только пользователь щелкнет в этом текстовом поле?

Еслитак может кто-нибудь, пожалуйста, дайте мне знать, как?

СПАСИБО-

Ответы [ 4 ]

4 голосов
/ 01 ноября 2010

Если предположить, что TextBox назван TextBox1, следующее должно работать

Private Sub TextBox1_GotFocus()
    TextBox1.Text = ""
End Sub
3 голосов
/ 24 ноября 2016

Я знаю, что это старый пост, но я наткнулся на него и решил добавить ответ. Может быть, кто-то найдет это полезным когда-нибудь :-)

Я бы проверил текущее значение перед очисткой содержимого. Таким образом, он очищает контент при первом щелчке по нему, но если вы щелкнете по нему еще раз позже (возможно, для редактирования имени), он ничего не сделает, разрешив редактирование без необходимости начинать заново.

Если предположить, что TextBox имеет имя TextBox1, а текст-заполнитель - NEW NAME HERE, следующее должно работать

Private Sub TextBox1_Enter()
    If TextBox1.Text = "NEW NAME HERE" Then
        TextBox1.Text = ""
    End If
End Sub

Чтобы восстановить заполнитель, если текстовое поле оставлено пустым:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Trim(TextBox1.Text) = "" Then
        TextBox1.Text = "NEW NAME HERE"
    End If
End Sub

Проверено в Word 2010 VBA

1 голос
/ 17 июля 2012
Private Sub Textbox1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Textbox1.MouseClick
    textbox1.clear()
End Sub

попробуй это. я просто этот код в daniweb.

1 голос
/ 06 февраля 2012

Я попробовал это без части Ручек (как другой человек, который ответил), и это ничего не сделало. Я подтвердил, что код ниже работает для меня.

Private Sub txtNewNameHere_GotFocus() Handles txtNewNameHere.GotFocus
    txtNewNameHere.Text = ""
End Sub

Надеюсь, это кому-нибудь поможет, хотя этот вопрос немного устарел.

...