.NET keypress 事件之键盘输入控制
下面是我在用VB6.0时实现的代码
[vb]
Private Sub txtCash_KeyPress(KeyAscii As Integer) '限制输入的金额只能是数字
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox "只能输入数字!,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtCash.SetFocus
End If
End Sub
Private Sub txtCash_KeyPress(KeyAscii As Integer) '限制输入的金额只能是数字
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox "只能输入数字!,请重新输入!", vbOKOnly + vbExclamation, "警告"
txtCash.SetFocus
End If
End Sub
在利用VB.NET 解决这个问题时可以有下面两个方法
1. 输入后在判断
输入后控制就是在文本框内数据都输入完成后判断所输入的是否全是数字 ,代码如下
[csharp]
If IsNumeric(txtCash.Text) = False Then
' MsgBox("请在金额中输入有效数字值")
' txtCash.Focus()
' txtCash.SelectAll()
' Exit Sub
' End If
If IsNumeric(txtCash.Text) = False Then
' MsgBox("请在金额中输入有效数字值")
' txtCash.Focus()
' txtCash.SelectAll()
' Exit Sub
' End If 但是我觉着这样会很费时间,因为这是需要在程序运行后才能知道的, 而不是输入时就知道自己输入错了
2.输入时判断
我采用了这中方法,可以再输入时就判断,代码如下:
[csharp]
Private Sub txtCash_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtCash.KeyPress
If Char.IsNumber(e.KeyChar) Or e.KeyChar = Chr(Keys.Back) Then '退格应该允许。
Return
Else
MsgBox("请输入数字")
e.Handled = False
End If
e.Handled = True
End Sub
Private Sub txtCash_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtCash.KeyPress
If Char.IsNumber(e.KeyChar) Or e.KeyChar = Chr(Keys.Back) Then '退格应该允许。
Return
Else
MsgBox("请输入数字")
e.Handled = False
End If
e.Handled = True
End Sub
其中e.keyChar是获取与键盘按下的键对应的字符, 而keys.Back 就是退格键的命令
而e.Handled 是返回boolean 表示该事件是否被处理过了
上一篇: Python3线程中应用队列讲解
下一篇: HTML5 Canvas组件绘制太极图案