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