textbox.clear может кто-нибудь проверить, где это не так? - PullRequest
0 голосов
/ 04 ноября 2010

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

    Private Sub Textbox1_keyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
    Dim UNDONE_TEXT As String

    If e.KeyCode = Keys.Space Then

        UNDONE_TEXT = ((TextBox1.Text) - 1)
        TextBox1.Clear()
        TextBox1.Text = UNDONE_TEXT

        MsgBox("Invalid character. No spaces Permited...")
    End If
End Sub

Конечный класс

это возвращает 3 ????

ОБНОВЛЕНИЕ:

    Private Sub Textbox1_keyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
    Dim UNDO_TEXT As String

    If e.KeyCode = Keys.Space Then
        UNDO_TEXT = TextBox1.Text
        TextBox1.Clear()
        TextBox1.Text = UNDO_TEXT
        TextBox1.Text.TrimEnd()
        MsgBox("Invalid character. No spaces Permited...")

    End If
End Sub

Конечный класс

только теперь фокус наполное текстовое поле при возврате после MSGbox?

Ответы [ 2 ]

0 голосов
/ 04 ноября 2010

Я не эксперт по VBA, но TextBox1.Text.Trim() будет тем, что вы ищете? Это удаляет пробелы в начале и в конце строки. Возможно, вы могли бы попробовать TrimEnd(). Я не знаю, существует ли это в VBA, оно существует в VB.NET:

Private Sub Textbox1_keyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown

    Dim UNDO_TEXT As String

    If e.KeyCode = Keys.Space Then
        TextBox1.Text = TextBox1.Text.TrimEnd()
        MsgBox("Invalid character. No spaces Permited...")
    End If

End Sub
0 голосов
/ 04 ноября 2010

UNDONE_TEXT = слева (TextBox1.Text, len (TextBox1.text) -1)

...