学生信息管理系统中的输入框,需要限制。就像我们从来没有见过谁的名字是数字一样,另外界面还要跟后台的数据库相联系,我们不能让输入框输入的长度超过数据库对该字段长度的范围。
对输入框的限制是通过TextBox的KeyPress事件实现的,通过限制键盘上键对应的Ascii码值达到效果。每一个输入框,都要保证退格键和Delete键可用,达到修改的目的
学号:我们限制它只能是数字
Private Sub txtSID_KeyPress(KeyAscii As Integer) If KeyAscii = 8 Then Exit Sub <span style="white-space:pre"> </span>'退格键可用 If KeyAscii = 127 Then Exit Sub <span style="white-space:pre"> </span>'Delete键可用 If KeyAscii > 48 And KeyAscii < 57 Then <span style="white-space:pre"> </span>'只用数字键可用 Else <span style="white-space:pre"> </span>MsgBox "学号请输入数字", vbOKOnly + vbExclamation, "警告" <span style="white-space:pre"> </span> '当输入的不是数字时给出提示 KeyAscii = 0 txtSID.SelStart = 0 txtSID.SelLength = Len(txtSID.Text) <span style="white-space:pre"> </span> '选中输入框中的内容 End If End Sub姓名:我们只能让这个框中输入字母或者是汉字
Private Sub txtName_KeyPress(KeyAscii As Integer) If (KeyAscii < 0) Or (KeyAscii >= 65 And KeyAscii <= 90) Or (KeyAscii >= 97 And KeyAscii <= 122) Or (KeyAscii = 8) Then Else MsgBox "姓名由字母和汉字组成", vbOKOnly + vbExclamation, "警告" KeyAscii = 0 txtName.SelStart = 0 txtName.SelLength = Len(txtName.Text) End If End Sub入学日期:格式为 yyyy-mm-dd,所以我们除了保证只能输入数字外,还要让符合 “-”能够输入,找到该符号对应的Ascii值。
Private Sub txtBorndate_KeyPress(KeyAscii As Integer) If KeyAscii = 8 Then Exit Sub If KeyAscii = 127 Then Exit Sub If KeyAscii = 45 Then Exit Sub<span style="white-space:pre"> </span>'符号“-”对应的Ascii值 If KeyAscii < 48 Or KeyAscii > 57 Then MsgBox "出生日期请输入数字", vbOKOnly + vbExclamation, "警告" KeyAscii = 0 txtBorndate.SelStart = 0 txtBorndate.SelLength = Len(txtBorndate.Text) End If End Sub联系电话:我们还要设置它的长度,不能超过11位,这通过TextBox的Chang事假实现
Private Sub txtTel_Change() txtTel.MaxLength = 11 <span style="white-space:pre"> </span>'限制长度最长是11位 End Sub
这几种通过自由的变形,设置了整个学生信息管理系统中的输入框的限制,刚开始敲的时候只是照着代码敲完了,没有做到思考。后来验收的时候,问题就全部暴露出来了。站在一个使用者的角度思考问题,得民心者得天下,要做到全心全意为人民服务。