текстовое поле не позволяет нажимать клавишу Backspace? - PullRequest
2 голосов
/ 21 ноября 2011

Я создал текстовое поле, которое ограничивает использование символов только цифрами и точками.Хорошо, но теперь я не могу ввести backspace, чтобы изменить любые данные, введенные в моем текстовом поле.Как я могу это исправить?

    Private Sub TextBox10_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox10.KeyPress

    Dim allowedChars As String = "1234567890."

    If allowedChars.IndexOf(e.KeyChar) = -1 Then
        ' Invalid Character
        e.Handled = True
    End If

End Sub

1 Ответ

6 голосов
/ 21 ноября 2011

Вы можете проверить Backspace с помощью

If e.KeyChar = ChrW(8) Then
    MessageBox.Show("backspace!")
End If

Таким образом, весь ваш код станет:

Private Sub TextBox10_KeyPress(ByVal sender As Object, ByVal e As     System.Windows.Forms.KeyPressEventArgs) Handles TextBox10.KeyPress

    Dim allowedChars As String = "1234567890."

    If allowedChars.IndexOf(e.KeyChar) = -1 andalso
            Not e.KeyChar = ChrW(8) Then
        ' Invalid Character
        e.Handled = True
    End If

End Sub

Аналогичный вопрос: Как я могу принять клавишу Backspace всобытие нажатия клавиши?

...