WinForm中的登錄實(shí)現(xiàn)
更新時(shí)間:2012年11月07日 16:58:34 作者:
在一般的C/S系統(tǒng)中,登錄功能基本上是必備功能,總結(jié)了三種C# Winform登錄功能的實(shí)現(xiàn)方法
在一般的C/S系統(tǒng)中,登錄功能基本上是必備功能,
總結(jié)了三種C# Winform登錄功能的實(shí)現(xiàn)方法。
第一種:在應(yīng)用程序設(shè)置代碼里(Program.cs)將應(yīng)用程序入口改成系統(tǒng)主窗口
聽起來有點(diǎn)繞,就是說,在應(yīng)用程序初始化時(shí),第一個(gè)加載的頁面是我們登錄后的主頁面。
1、在Program.cs文件中設(shè)置Application.Run:
Application.Run(new FormMain());//設(shè)置應(yīng)用程序運(yùn)行時(shí)加載的窗口
2、添加登錄按鈕事件private void button1_Click(object sender, EventArgs e)代碼
private void button1_Click(object sender, EventArgs e)//登錄
{
if (this.textBoxPassword.Text == "")
{
MessageBox.Show("請(qǐng)輸入密碼!");
}
else if (this.textBoxUsername.Text=="123" && this.textBoxPassword.Text == "123")
{
this.DialogResult = DialogResult.OK;
this.Close();
}
else
{
MessageBox.Show("Username or Password Error");
}
}
3、添加主窗口formMain加載時(shí)事件代碼
private void main_Load(object sender, EventArgs e)
{
Form formLogin = new login();
formLogin.ShowDialog();
if (formLogin.DialogResult == DialogResult.OK)//如果登錄框返回DialogResult.OK
{
MessageBox.Show("正常登錄");
}
else
{
this.Close();
}
}
設(shè)計(jì)邏輯:
首先程序load主窗口formMain,這時(shí)formMain就會(huì)new一個(gè)login登錄窗口并彈出窗口,然后關(guān)閉自身。在登錄窗口驗(yàn)證用戶名和密碼后通過登錄窗口的this.DialogResult = DialogResult.OK;并關(guān)閉登錄框。關(guān)閉以后formMain的main_Load事件再次判斷登錄框的DialogResult是否是OK,如果是則加載主窗口。
第二種:通過登錄驗(yàn)證來控制是否是否執(zhí)行Application.Run()。
代碼如下:
Form formLogin = new login();
formLogin.ShowDialog();
if (formLogin.DialogResult == DialogResult.OK)
{
Application.Run(new formMain());
}
else
{
return;
}
這種方法的原理理解起來相對(duì)第一種來說要簡(jiǎn)單些,在應(yīng)用程序初始化時(shí),首先加載登錄窗口并進(jìn)行驗(yàn)證,只有驗(yàn)證通過才Run(new formMain());
第三種:在通過登錄驗(yàn)證后,直接將登錄框隱藏(注是隱藏,this.Hide()而不是this.Close())。這種方法理解起來就更簡(jiǎn)單了。
總結(jié)了三種C# Winform登錄功能的實(shí)現(xiàn)方法。
第一種:在應(yīng)用程序設(shè)置代碼里(Program.cs)將應(yīng)用程序入口改成系統(tǒng)主窗口
聽起來有點(diǎn)繞,就是說,在應(yīng)用程序初始化時(shí),第一個(gè)加載的頁面是我們登錄后的主頁面。
1、在Program.cs文件中設(shè)置Application.Run:
復(fù)制代碼 代碼如下:
Application.Run(new FormMain());//設(shè)置應(yīng)用程序運(yùn)行時(shí)加載的窗口
2、添加登錄按鈕事件private void button1_Click(object sender, EventArgs e)代碼
復(fù)制代碼 代碼如下:
private void button1_Click(object sender, EventArgs e)//登錄
{
if (this.textBoxPassword.Text == "")
{
MessageBox.Show("請(qǐng)輸入密碼!");
}
else if (this.textBoxUsername.Text=="123" && this.textBoxPassword.Text == "123")
{
this.DialogResult = DialogResult.OK;
this.Close();
}
else
{
MessageBox.Show("Username or Password Error");
}
}
3、添加主窗口formMain加載時(shí)事件代碼
復(fù)制代碼 代碼如下:
private void main_Load(object sender, EventArgs e)
{
Form formLogin = new login();
formLogin.ShowDialog();
if (formLogin.DialogResult == DialogResult.OK)//如果登錄框返回DialogResult.OK
{
MessageBox.Show("正常登錄");
}
else
{
this.Close();
}
}
設(shè)計(jì)邏輯:
首先程序load主窗口formMain,這時(shí)formMain就會(huì)new一個(gè)login登錄窗口并彈出窗口,然后關(guān)閉自身。在登錄窗口驗(yàn)證用戶名和密碼后通過登錄窗口的this.DialogResult = DialogResult.OK;并關(guān)閉登錄框。關(guān)閉以后formMain的main_Load事件再次判斷登錄框的DialogResult是否是OK,如果是則加載主窗口。
第二種:通過登錄驗(yàn)證來控制是否是否執(zhí)行Application.Run()。
代碼如下:
復(fù)制代碼 代碼如下:
Form formLogin = new login();
formLogin.ShowDialog();
if (formLogin.DialogResult == DialogResult.OK)
{
Application.Run(new formMain());
}
else
{
return;
}
這種方法的原理理解起來相對(duì)第一種來說要簡(jiǎn)單些,在應(yīng)用程序初始化時(shí),首先加載登錄窗口并進(jìn)行驗(yàn)證,只有驗(yàn)證通過才Run(new formMain());
第三種:在通過登錄驗(yàn)證后,直接將登錄框隱藏(注是隱藏,this.Hide()而不是this.Close())。這種方法理解起來就更簡(jiǎn)單了。
您可能感興趣的文章:
- C# Winform 禁止用戶調(diào)整ListView的列寬
- c#中Winform實(shí)現(xiàn)多線程異步更新UI(進(jìn)度及狀態(tài)信息)
- C# Winform下載文件并顯示進(jìn)度條的實(shí)現(xiàn)代碼
- C#中WinForm程序退出方法技巧總結(jié)
- C# WinForm中禁止改變窗口大小的方法
- C#,winform,ShowDialog,子窗體向父窗體傳值
- WinForm中DataGridView添加,刪除,修改操作具體方法
- c# winform多線程的小例子
- WinForm窗體間傳值的方法
- WinForm中快捷鍵與組合按鍵的設(shè)置方法
- .NET WinForm實(shí)現(xiàn)在listview中添加progressbar的方法
相關(guān)文章
C#中Backgroundworker與Thread的區(qū)別
本文主要介紹了C#中Backgroundworker與Thread的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06WPF仿LiveCharts實(shí)現(xiàn)餅圖的繪制
這篇文章主要介紹了如何利用WPF仿LiveCharts實(shí)現(xiàn)餅圖的繪制,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,需要的可以參考一下2022-07-07WPF實(shí)現(xiàn)動(dòng)畫效果(一)之基本概念
這篇文章介紹了WPF實(shí)現(xiàn)動(dòng)畫效果之基本概念,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06C#如何打開選擇文件對(duì)話框和選擇目錄對(duì)話框
這篇文章主要介紹了C#如何打開選擇文件對(duì)話框和選擇目錄對(duì)話框問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07