Я нашел множество способов ограничить пользователей от ввода алфавитных символов, но я хочу быть более конкретным. Я делаю двоичный калькулятор, и я хотел бы, чтобы пользователь мог только заполнить цифры «0» и «1».Как только разрешить «0» и «1» помещаться в текстовое поле
ответ
Применяется в случае textbox_keypress ..
Private Sub txtbox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtbox.KeyPress
Dim k As Byte = Asc(e.KeyChar)
If Not (e.KeyChar = "0" Or e.KeyChar = "1" Or k = 8 Or k = 13) Then e.Handled = True
End Sub
Это прекрасно работает, спасибо, хотя я бы хотел, чтобы пользователь мог использовать обратное пространство. – user2399399
@ user2399399: обновлено .... – matzone
@ user2399399: Обновлено для Enter key ... – matzone
Хотя Есть много способов сделать это, мне нравится этот метод:
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim valid_values As String = "01"
If Not valid_values.Contains(e.KeyChar) Then
e.Handled = True
End If
End Sub
Это наиболее удобный для обслуживания среди предлагаемых ответов, ИМХО. +1 – Neolisk
Это удостоверится клавиша нажата либо 0, либо 1. В противном случае он будет действовать, как если бы не были нажаты никакие клавиши.
Private Sub txtBox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtBox.KeyDown
If Not (e.KeyCode = Keys.0 OR e.KeyCode = Keys.1) Then
e.Handled = True
EndIf
End Sub
'OnKeyDown "если (ключ! = 0) && (ключ! = 1), то запретить"', так сказать? –
О каком виде вы говорите? – Dima
Приложение VB Windows Forms, использующее Visual Studio 2012. – user2399399