我在优化机房收费时候想要限制textbox控件的输入,不允许输入非法字符,可是我找了好几天都没有找到,我在第一遍机房收费的时候没有好好做,很多功能就没有实现,现在遇到这个功能不能实现,我怎么忍心再放弃啊...之后我想,问问别人吧,结果都跟我说“在第一遍的时候这个功能我已经实现了,所以第二遍的时候就没做”,额...我就去找了他们曾经写过得博客,如何限制textbox的输入,可是VB6.0上的代码用到VB.net却不能实现,好郁闷。
然后我又去查,但只找到了怎样只能输入数字,这我就已经开心的不行了!,我想继续优化,比如限制输入汉字和字母...我想用ascii码限制,无奈我快崩溃了都没弄出来...我只好找外援了,荣凯兄一直跟我说用ascii码限制,所以我就他拉了过来...
修改的过程并不像我们想的那么简单,荣凯兄噼里啪啦的整了一个多小时,终于功夫不负有心人,达到了我们想要的结果。
姓名只可以可以输入汉字和字母,否则你按下键的时候就会有提示,而且在textbox框中不会显示不允许输入的内容
卡号只能输入数字,输入其他值就提示,“只能输入数字!”textbox框中不显示不允许输入的内容
密码可以输入数字和字母,通过设置ImeMode属性为Disable ,不管在中文输入下还是在英文输入下,按下字母都只能显示字母而不能显示汉字
好了,服务一下大众吧,上代码
Private Sub txtName_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtName.KeyPress
If Char.IsLetter(e.KeyChar) Or e.KeyChar = Chr(8) Then ' e.KeyChar = Chr(8)为删除键
e.Handled = False
Else
e.Handled = True '事件己处理
MsgBox("请输入汉字或字母!", , "提示!")
End If
txtName.MaxLength = 11
End Sub
Private Sub txtPWD2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtPWD2.KeyPress
'vb.net textbox控件 限制输入,只能输入数字
txtPWD2.ImeMode = Windows.Forms.ImeMode.Disable
If Char.IsDigit(e.KeyChar) Or e.KeyChar = Chr(8) Or Char.IsLetter(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True '事件己处理
MsgBox("只能输入数字或字母!", , "提示!")
End If
'限制textbox长度
txtPWD2.MaxLength = 11
End Sub
Private Sub txtUserID_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtUserID.KeyPress
'vb.net textbox控件 限制输入,只能输入数字
txtUserID.ImeMode = Windows.Forms.ImeMode.Disable
If Char.IsDigit(e.KeyChar) Or e.KeyChar = Chr(8) Then
e.Handled = False
Else
e.Handled = True '事件己处理
MsgBox("只能输入数字!", , "提示!")
End If
'限制textbox长度
txtUserID.MaxLength = 11
End Sub
从这件事上看...即使看上去很简单的功能,也有必要自己上手实践一下啊...