机房登录优化总结

前言:

之前敲机房的时候,遇到很多问题,没有解决,然后截图保留,后来,也不知道那个图是什么意思了!最近在优化的时候,有发现了一些新的问题,也解决了以前的一些问题!


问题一:
特殊字符,输入用户名和密码时需要限制特殊字符输入!
解决:

Private Sub txtUserName_KeyPress(KeyAscii As Integer)
    Select Case KeyAscii
        Case 8
        Case Asc("A") To Asc("Z")
        Case Asc("0") To Asc("9")
        Case Asc("a") To Asc("z")
        Case Is < 0
        Case Else
            KeyAscii = 0
    End Select
End Sub

相关链接:https://blog.csdn.net/hit_the_lights/article/details/78075780


问题二:
在每次关闭窗体前需要向用户发送提醒消息,确认是否真的要关闭窗体的实现
解决二:
在查的过程中发现form窗体有两个关于卸载的实践!
form_Unload
form_QuiryUnLoad
在机房中主窗体是一个MDI父窗体,它里面有很多的MDI子窗体,当MDI父窗体发生卸载事件时(不管是end终止应用程序,还是MDI父窗体触发Unload事件,)这时就会触发隶属的子窗体(前提:正在打开状态的),这个quiryUnload事件就是为了防止子窗体中还在运行某些东西,而因为MDI父窗体的误卸载而出错,所以设置这样一个卸载前查询,因为一旦MDI父窗体卸载,MDI子窗体也就被强制性关闭了!

Private Sub Form_Unload(Cancel As Integer)
    If MsgBox("确定要退出吗?", vbYesNo) = vbNo Then 
        Cancel = 1
    end if 
End Sub

相关链接:https://blog.csdn.net/cyl_happygirl/article/details/13168021
https://blog.csdn.net/wlj323/article/details/41598325


问题三:
在输入用户名或密码的时候为了防止用户无休止的输入很多字符,需要限制用户名或密码的长度,系统设计的时候,数据库中用户名和密码字段的长度是一定的,所有一旦有用户这样的操作,需要判断长度,超出指定长度,需要提示用户!
解决:
首先需要判断用户输入的字符个数!用到函数Len
这个是我的测试,在text1中输入,在text2中显示出个数。
这里写图片描述
这里写图片描述

if Text2.text > 6 then 
    MsgBox "用户名/密码限制长度为6个字符", vbOKOnly + vbInformation, "提示"
end if 

问题四:
我的模块里有段代码是这样的。实例化一个登录窗体,让窗体按模式显示,我一开始以为是在登陆窗体中没有点击确认登陆,然后也就是不论点击了什么一律退出!
然后运行的时候报错:一直显示没有该数据对象或方法!
正确的代码应该是:

if Not frmLogin.OK then

这里写图片描述
解决:
需要在frmLogin窗体中定义

dim Ok  as Boolean

在frmLogin_Click事件中执行完用户名和密码正确判断后
设置OK=true
然后代码在顺序执行的时候,如果用户名和密码判断正确后
设置frmLogin.Ok=true
然后顺序执行:if Not frmLogin.OK then部分代码


问题五:
窗体的模式 https://blog.csdn.net/jerry11112/article/details/78441861
解决:

fLogin.Show vbModal

将登录窗体设置成 vbModal,也就是说必须完成当前的窗体后才能操作其他窗体!而非模式的的话,比如打开的很多个MDI子窗体,对它们的操作可以相互切换来,不必非要等到某一窗体操作完成后才能对其他窗体进行操作!
我觉设置窗体为vbModal的目的,可能后续程序的执行需要这部操作,所以必须强制保证这步不能出错,设置成模式窗体,便可以解决这个问题!

猜你喜欢

转载自blog.csdn.net/zhaofen_7/article/details/79771952