机房登录优化总结
前言:
之前敲機房的時候,遇到很多問題,沒有解決,然后截圖保留,后來,也不知道那個圖是什么意思了!最近在優化的時候,有發現了一些新的問題,也解決了以前的一些問題!
問題一:
特殊字符,輸入用戶名和密碼時需要限制特殊字符輸入!
解決:
Private Sub txtUserName_KeyPress(KeyAscii As Integer)Select Case KeyAsciiCase 8Case Asc("A") To Asc("Z")Case Asc("0") To Asc("9")Case Asc("a") To Asc("z")Case Is < 0Case ElseKeyAscii = 0End 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 = 1end 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的目的,可能后續程序的執行需要這部操作,所以必須強制保證這步不能出錯,設置成模式窗體,便可以解決這個問題!
總結
- 上一篇: 提高期——SLA实践指导秘籍
- 下一篇: 确定修改——取消修改