天天看點

winform 登入窗體設計

其實這種登入窗體的設計有很多種模式。而且實作起來都很簡單,我簡單列舉兩種方式

這裡的方法都涉及到了多窗體傳遞資料的問題,請參考我以前的一篇文章《多窗體傳遞資料》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("使用者名密碼不能為空!");
            }
        }

           

繼續閱讀