登錄窗體(一)

我們平時用的QQ、飛信、微信等等,都有一個登陸界面,我們今天就做了一個簡單的登陸窗體,在關注登陸窗體的時候,我們要知道,登錄窗體只是一個界面、一個驗證的過程,重要的還是登陸以後在主窗體上我們要幹什麼。

在登陸之後,轉到主窗體,開始進行我們要乾的事,在這裏我們是要把登錄窗體的登陸名傳到主窗體上。這裏我們的傳遞是通過類傳遞的(對窗體的具體操作都在類中),類之間傳遞參數或值得時候有五種方法:構造方法、公開的字段、公開的屬性、公開的方法、委託。

先看我們做的登陸窗體:

231619189.png

下來我們就要寫登陸窗體中的各種Click事件,並在登陸成功後將登錄窗體中的登錄名傳遞到主窗體中去:

//聲明一個委託用來傳值
public delegate void SendLoginIdHandler(string loginId);
public partial class frmLogin : Form
{
//定義一個事件
public event SendLoginIdHandler SendLoginIdEvent;
public frmLogin()
{
InitializeComponent();
}
bool flag = false;
/// <summary>
/// 確定按鈕的Click事件,我們要通過點擊確定按鈕,
/// 來觸發這個事件,並判斷輸入的用戶名和密碼是否正確
/// 在這裏我們就先默認用戶名和密碼都是admin是輸入正確
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnOK_Click(object sender, EventArgs e)
{
//獲取用戶輸入的值
string loginId = this.txtLoginId.Text;
string loginPwd = this.txtLoginPwd.Text;
//判斷用戶名和密碼是否正確,不正確的話顯示一個模態窗體並顯示登錄名或密碼錯誤
if (!(loginId=="admin"&&loginPwd=="admin"))
{
MessageBox.Show("登錄名或密碼錯誤");
//登錄名或密碼錯誤後返回,讓用戶重新輸入
return;
}
//如果能走到這一步,說明輸入正確,登陸就可以結束了,登錄窗體關閉,下面就顯示主窗體
flag = true;
//如果事件不是空的,就激發事件
if (SendLoginIdEvent!=null)
{
SendLoginIdEvent(loginId);
}
this.Close();
}
/// <summary>
/// 登錄窗體的FormClosing事件,當flag==false的時候,說明登錄失敗,
/// 那麼接下來在關閉登錄窗體的時候,退出整個應用程序。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void frmLogin_FormClosing(object sender, FormClosingEventArgs e)
{
if (flag==false)
{
Application.Exit();
}
}
/// <summary>
/// 取消按鈕的Click事件,點擊關閉登陸窗體
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}

下面來看主窗體中的代碼:

public frmMain()
{
InitializeComponent();
}
private void frmMain_Load(object sender, EventArgs e)
{
//創建一個登錄窗體的對象
frmLogin frm = new frmLogin();
//訂閱事件
frm.SendLoginIdEvent += new SendLoginIdHandler(frm_SendLoginIdEvent);
//顯示登錄窗體
frm.ShowDialog();
}
void frm_SendLoginIdEvent(string loginId)
{
//通過委託傳進來的值
this.label1.Text = loginId;
}

002257541.png

這個就是登陸成功後傳進來的登錄名。

P.S.登錄窗體:1:不要太大,沒有最小化和最大化按鈕;(要美觀,我們平時見到的登錄窗體都大小適中)

2:要固定大小;(Windows窗體要報位置固定好)

3:窗體在正中間;

4:類名要規範;

5:要注意格式(天高地厚,左青龍右白虎)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章