faiqaa Ответов: 2

Как разрешить backspace и пробел при проверке букв в VB?


Я перепробовал все, и до сих пор не могу нажать backspace и пробел при вводе соответствующих данных (букв) в текстовое поле.

Что я уже пробовал:

Если на ASC(электронный.Ключевой-символ) &ЛТ; 65 или АСК(электронная.Ключевой-символ) &ЛТ; 90 _

И ASC(электронный.Ключевой-символ) &ЛТ; 97 или АСК(электронная.Ключевой-символ) &ГТ; 122 тогда

Ящик для сообщений.Показать("пожалуйста, введите только буквы")

е.Обработано = Истина

Конец, Если

2 Ответов

Рейтинг:
17

A_Griffin

Используйте случай выбора

Select Case Asc(e.KeyChar)
  Case 8, 32, 65 To 90, 97 To 122
     ' allowed
     ' add other blocks as required - eg 48 to 57 to allow numbers

  Case Else  
     MessageBox.Show("Please enter letters only")
End Select

Таблицы ASCII[^]


Рейтинг:
1

OriginalGriff

Посмотрите на свой код:

If Asc(e.KeyChar) < 65 Or Asc(e.KeyChar) < 90 _
And Asc(e.KeyChar) < 97 Or Asc(e.KeyChar) > 122 Then
Если он ниже 65, значит, ниже 90.
А каков приоритет " и " и "или"? Оценивается ли он как
(a Or b) And (c Or d)
Или как
a Or (b And c) Or d

Попробовать это:
If Char.IsLetterOrDigit(e.KeyChar) OrElse e.KeyChar = " "c OrElse e.KeyChar = CChar(Keys.Back) Then
        ' All OK.
    Else
        MessageBox.Show("Please enter letters only")
        e.Handled = True
    End If