1. 程式人生 > >C#的使用者登入和介面嵌入設計

C#的使用者登入和介面嵌入設計

1、windowForm介面的登入一般出現在主介面之前,先驗證登入資訊,然後判斷是否登入成功。可以新建立一個formLogin窗體。在系統初始化時,彈出視窗。控制介面和程式碼如下。


 static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

//登入窗體的例項化,並顯示。
            FormLogin objectForm = new FormLogin();
            objectForm.ShowDialog();
            
                      
            Application.Run(new FormMain());
        }

登入按鈕的控制程式碼

 private void btnLogin_Click(object sender, EventArgs e)
        {
            if(txtUserName.Text.ToString()=="" )
            {
                MessageBox.Show("賬戶不能為空", "登入提示");
                return;
            }
            if (txtPassWord.Text.ToString() == "")
            {
                MessageBox.Show("密碼不能為空", "登入提示");
                return;
            }
            if (txtUserName.Text.ToString() == "ABC" && txtPassWord.Text.ToString() == "123456")
            {
               this.Close();
               // MessageBox.Show("  登入成功", "登入提示");
                return;
            }
            else
            {
                MessageBox.Show("賬戶或者密碼錯誤", "登入提示");
                return;
            }
        }

放棄按鈕的控制程式碼:

  private void btnCancel_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

2、主窗體中一般會嵌入多個窗體,這個時候就需要首先建立多個窗體介面,然後通過例項化的方式,將視窗嵌入到主視窗中。控制方式如下:


以上為新建立的4個視窗,主視窗,引數設定視窗,正面測試視窗,背面測試視窗


主介面如上圖,通過點選上方按鈕,來控制顯示指定視窗。首先的方法是需要判斷這個容器panel1中包含多少個控制元件,然後先逐一關閉控制元件,顯示指定視窗。並設定視窗的屬性。程式碼如下:

 private void BTNwindow2_Click(object sender, EventArgs e)
        {
            CloseForm();
            FormParamter objectForm = new FormParamter();
            OpenForm(objectForm);
        }

        private void BTNwindow3_Click(object sender, EventArgs e)
        {
            CloseForm();
            FormFrontTest objectForm = new FormFrontTest();
            OpenForm(objectForm);
        }
        private void BTNwindow4_Click(object sender, EventArgs e)
        {
            CloseForm();
            FormBackTest objectForm = new FormBackTest();
            OpenForm(objectForm);
        }
        public void OpenForm(Form objectForm)//傳遞一個視窗物件。
        {
            objectForm.TopLevel = false;//設定窗體不置頂
            objectForm.FormBorderStyle = FormBorderStyle.None;//使窗體無邊框
            objectForm.WindowState = FormWindowState.Maximized;//使窗體最大化
            objectForm.Parent = this.panel1;//設定窗體的父視窗
            objectForm.Show();//顯示當前窗體
        }


        public void CloseForm()
        {
            foreach (Control item in this.panel1.Controls)
            {
                if (item is Form)//遍歷這個panel1中包含多少控制元件,並逐一關閉。
                {
                    Form objControl = (Form)item;
                    objControl.Close();
                    this.panel1.Controls.Remove(item);
                }
            }
        }

這裡我們防止程式碼複用,特意將開啟視窗和關閉視窗做一個簡單的封裝。