浅谈如何在C#Winform程序中正确使用登录窗体
看到很多朋友在CSDN中發(fā)帖放分求“如何實現(xiàn)登錄驗證正確后彈出主窗體”的問題。關于這個問題的實現(xiàn)方法,一般很多人都是使用在登錄窗體點擊“登錄”按鈕后,通過后臺數(shù)據(jù)驗證正確后,把登錄窗體隱藏,然后載入主窗體。還有一種做法是以上提問的這些人的一個不太對的一個實現(xiàn)辦法(其實是無法實現(xiàn)的),他們的做法是點擊“登錄”按鈕后,調(diào)用this.close()方法去把登錄窗體關閉,然后實例化主窗體
?????????? frmMain dlg=new frmMain();
?????????? dlg.ShowDialog();
???????? 用以上代碼想實現(xiàn)登錄后加載主窗體,你可以發(fā)現(xiàn),當點擊“登錄”按鈕后,登錄窗體確實是關閉了,然后程序加載主窗體,主窗體是一閃而過,隨即又關閉了。這是為什么呢?其實,你調(diào)用登錄窗體的關閉事件時,把進程給關了,frmMain和frmLogin窗體是同一個進程,所以就出現(xiàn)了以上的一閃而過的現(xiàn)象。
???????? 那么我們?nèi)绾文軌驅(qū)崿F(xiàn)驗證登錄信息正確后加載主窗體呢?我的答案是通過驗證返回參數(shù)去實現(xiàn)過程控制。
???????? 在程序的類庫里定義一個全局變量,如Bool? bLoginOk=false;
???????? 此變量在未作登錄時的初始值為false。
???????? 在項目中的Program.cs中,通過先加載frmLogin,點擊登錄窗體中的“登錄”按鈕后,在后臺查詢數(shù)據(jù)庫驗證合法性,如果合法,則把bLoginOk賦值true;否則賦值falsse。
???????? 在最后通過判斷bLoginOk的值
??????? if(bLoginOk==true)
?????? {
?????????? Application.run(frmMain);
?????? }
????? else
????????? Application.Exit();
????????? 同樣可以通過以上的方法實現(xiàn)驗證數(shù)據(jù)庫連接參數(shù)的準確性。
轉(zhuǎn)載于:https://blog.51cto.com/marsng/1792114
總結(jié)
以上是生活随笔為你收集整理的浅谈如何在C#Winform程序中正确使用登录窗体的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matio使用
- 下一篇: Navicat Premium 数据库设