Программирование
Веб программирование

Работа с клавиатурой в VB.Net, Часть III

 
 

В этом шаге мы сделаем программу, которая будет запрещать ввод букв, можнго будет вводить только цифры. На форме размести текстовое поле. Открой таблицу кодов ASCII, которая размещена в шаге: 'Работа с клавиатурой, Часть I'. Вот код:

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress ' Код нужно писать в событие KeyPress потому что это событие происходит быстрее чем KeyDown. KeyDown срабатывает после того, как в текстовом поле появился введеный символ, а KeyPress перед этим.
If Asc(e.KeyChar) <> 8 Then ' Если введенный символ не является BackSpase:
If Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57 Then ' Теперь посмотри в таблицу ASCII кодов, коды от 48 до 57 - цифры, при помощи функции Asc введеный символ преобразуется в ASCII код, и если он является числом(от 0 до 9), то не выполняем никаких действий
Else ' Если же ASCII код не является числом, то:
e.Handled = True ' В VB.Net в отличие от предыдущих версий значение свойства KeyChar нельзя сбросить, т.к. оно только для чтение. И поэтому придется поглотить введенный символ, для этого надо установить значение свойства e.Handled = True
End If
End If
End Sub

Исходник


Есть вопросы? Спроси на нашем форуме!!
Неизвестный [30.04.2011 21:52]

...

Андрей Змей [10.10.2011 19:15]

В шаге "Работа с клавиатурой, Часть I" нет таблицы кодов ASCII...

Гость [08.12.2011 04:07]

Таблицы ASCII нету! Выложите плиз...

терроррист с прищепкой [23.04.2012 11:14]

http://vbbook.ru//ascii-tablica-simvolov/

BlackFoxGun [24.11.2012 03:52]

Лукин С.Н.- Понятно о Visual Basic.Net - лучший самоучитель по VB.net( по Char и ASCII и Unicode-в 3 томе)

red755 [20.11.2013 15:22]

а так проще:
If Not (Asc(e.KeyChar) = 8 Or (Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57)) Then e.Handled = True

Stertor210 [20.11.2013 16:40]

а еще проще так:

dim akey as integer

akey=asc(e.keychar)

if ((akey 8 or akey >=48) and (akey <=57)) then ...

зачем извращаться.

Stertor210 [20.11.2013 21:24]

ох бля, опять сайт все испортил. В блоке

if((akey вот в этом месте символ "не равно" or akey>=8) and

Stertor210 [20.11.2013 21:25]

Оба поста неправильные, т.к. движок сайта удаляет некоторые символы. Не обращайте внимания.

Stertor210 [20.11.2013 23:26]

шейд, мои статьи ты за здорово живешь удалил, что же ты не исправляешь ошибки в постах? Или у тебя глаза вылезли?

Shade970 [21.11.2013 17:46]

Я статьями не занимаюсь если что!

Shade970 [21.11.2013 17:47]

Оскорбляя меня, в первую очередь ты ооскорбляшь себя!

Stertor370 [21.11.2013 18:10]

я тебя не оскорблял.

Ontario [24.12.2013 21:55]

Можно ещё так! Самый лёгкий способ наверно. Если я не ошибаюсь.

If Not IsNumeric(TextBox1.Text)
MsgBox("Вы ввели не числовое значение!", vbCritical)
Exit Sub
End If



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.