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);
}
}
}
這裡我們防止程式碼複用,特意將開啟視窗和關閉視窗做一個簡單的封裝。