机房收费系统之神奇的“焦点”

前端之家收集整理的这篇文章主要介绍了机房收费系统之神奇的“焦点”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  优化的过程中,发现如果将信息填写完整后再提示已经存在账号或是询问是否激活卡号太费事,有种费力不讨好的感觉,所以,就想刚刚输入卡号就给出提示,期初我用的是keypress事件,后发现运行时反应慢半拍,输入卡号1,在点击一下别的按键或是点击一下去控件按钮才能给出提示,所以,就思考是不是选择的事件存在问题,就尝试了一下keydown事件,后发现还是老样子,只好去试试keyup,结果暂时令人惊喜,如下:


 于是,我猜测这三个时间就是反应周期的区别,为了验证猜想,去百度了一下:正如三者的字面意思:http://blog.sina.com.cn/s/blog_5e3a1bbb0100esv3.html
KeyDown:在控件有焦点的情况下按下键时发生。
KeyPress:在控件有焦点的情况下按下键时发生。
KeyUp:在控件有焦点的情况下释放键时发生。

  后发现,如果卡号是两位数,那么刚输入第一位就弹出提示框了,这样的话我的优化是没有任何义的,所以,只好改变思维——焦点问题,失去焦点再弹出提示框不就行了吗?也可以免去输入完整信息后再验证的麻烦,代码实现如下:
Private Sub txtCardNo_LostFocus()
Dim mrcS As ADODB.Recordset
Dim txtsql As String
Dim MsgText As String
txtsql = "select * from Student_Info where cardno='" & Trim(txtCardNo.Text) & "' and status='" & Trim("使用") & "'"
Set mrcS = Executesql(txtsql,MsgText)
If mrcS.EOF = False Then
MsgBox "该卡号已被注册,请重新输入!",vbOKOnly + vbExclamation,"警告"
txtCardNo.SetFocus
txtCardNo.Text = ""
 End if
End Sub

  解决了这个问题后,又在优化的过程中有了新的发现,是关于焦点问题的另一发现,导致上边的优化显得有点疏漏(不过,能发现就很好了,自我感觉,而且人在填写信息的时候,固有的思维貌似都是从头开始填的,所以,关于注册部分的“焦点优化”,就先不管了)
  请见上图,发现自己虽然按照注册时优化的那样,对“新口令”进行了LostFocus判断,但是无心中按了Tab,导致“确认口令”内容先填写上了,这样怎么行?!于是,就再次对神奇的焦点“心生爱慕”……


其实,觉得和功能实现比起来,我还是喜欢优化,优化的过程就是为人民服务的“思考”过程,人总是喜欢追求尽善尽美,无疑这就是一份钟爱……

原文链接:https://www.f2er.com/vb/257315.html

猜你在找的VB相关文章