其實這種登入窗體的設計有很多種模式。而且實作起來都很簡單,我簡單列舉兩種方式
這裡的方法都涉及到了多窗體傳遞資料的問題,請參考我以前的一篇文章《多窗體傳遞資料》http://www.cnblogs.com/voodooq/archive/2004/06/14/15446.aspx
1、Main窗體為登入窗體模式。
這種模式應該是比較友善而且簡單的一種實作方法,
描述:
在Main窗體中建立登入資訊等内容,然後點選登入按鈕後在本窗體進行驗證,當符合條件的時候,隐藏本窗體而顯示功能窗體。
相關代碼:
//直截取了一段,用于判斷的部分,大家可以看到在這裡啟動了應用。
應用程式的主入口點#region 應用程式的主入口點
/** <summary>
/// 應用程式的主入口點。
/// </summary>
[STAThread]
static void Main()
{
Application.Run(new LogonFrm());
}
#endregion
Event#region Event
private void btnOk_Click(object sender, System.EventArgs e)
{
if(this.txtUserId.Text!=""&&this.txtPwd.Text!="")
{
this.User=this.txtUserId.Text.Trim();
this.sPwd=this.txtPwd.Text.Trim();
MainFrm main=new MainFrm(this.User,this.sPwd);//執行個體化窗體并傳遞參數
this.Visible=false;
main.Show();
}
else
{
MessageBox.Show("使用者名和密碼不能為空!");
this.txtUserId.Text="";
this.txtPwd.Text="";
this.txtUserId.Focus();
return;
}
}
private void btnCancel_Click(object sender, System.EventArgs e)
{
Application.Exit();
}
#endregion
2、彈出登入窗體模式
這種登入當時相對上面一種稍微複雜一點,需要使用多窗體資料傳遞的方法。
描述:
這裡,将Main窗體作為登入後的處理窗體,而在Main窗體載入的時候,用ShowDialog()方法,顯示登入窗體,然後在登入窗體進行相應的操作以及判斷,并将資料傳遞過去。然後隐藏登入窗體,顯示Main窗體。
代碼:
//截取一部分代碼
//Main代碼部分,在載入窗體的時候顯示登入窗體
[STAThread]
static void Main()
{
LogonFrm lfrm = new LogonFrm();
MainFrm mfrm = new MainFrm();//将MainFrm執行個體化
lfrm.mfrm = mfrm;//對與登入窗體的對象
lfrm.ShowDialog();//顯示登入窗體
Application.Run(mfrm);
}
//這是登入窗體
public MainFrm mfrm;
//将建立一個MainFrm類型的對象
//處理登入操作
private void button1_Click(object sender, System.EventArgs e)
{
if(this.username.Text.Trim()!="" && this.pwd.Text.Trim()!="")
{
//将資料傳遞給MainFrm對象
mfrm.UserName = "使用者名:"+this.username.Text;
mfrm.PWD = "密 碼:"+this.pwd.Text;
this.Hide();
mfrm.Show();
}
else{
MessageBox.Show("使用者名密碼不能為空!");
}
}