2.3 系統(tǒng)主界面的制作
1、效果圖
2、實現(xiàn)MDI主界面的主要步驟
<1>、MDI容器窗體:
只要將窗體的IsMdiContainer屬性設置為True
<2>、MDI子窗體:
只要將某個窗體實例的MdiParent屬性設置到一個MDI父窗體,它就是那個父窗體的子窗體,語法:窗體實例名.MdiParent=父窗體對象
3、主界面中涉及到的控件以及控件的重要屬性、方法
Label
| 屬性 |
值 |
| Name |
label1、label2、label3 |
| Text |
用戶類型、用戶名、密碼 |
| TextAlign |
MiddleRight |
TextBox
cbb_Type
| 屬性 |
值 |
| Name |
cbb_Type |
| DropDownStyle |
DropDownList |
| FormattingEnable |
Ture |
tb_User
| 屬性 |
值 |
| Name |
tb_User |
| MaxLength |
9 |
| Lines |
String[] Array |
tb_Password
| 屬性 |
值 |
| Name |
tb_Password |
| PasswordChar |
* |
| Lines |
String[] Array |
Button
| 屬性 |
值 |
| Name |
bt_Login、bt_Exit |
| Text |
登錄、退出 |
| UseVisualStyleBlackColor |
True |
狀態(tài)欄StatuStrip
| 屬性 |
說明 |
| Spring |
指定項是否填滿剩余空間 |
| Items |
顯示的項的集合 |
| ImageScalingSize |
顯示圖像的大小 |
工具欄ToolStrip
| 屬性 |
說明 |
| Spring |
指定項是否填滿剩余空間 |
| Items |
顯示的項的集合 |
| ImageScalingSize |
顯示圖像的大小 |
4、主界面的功能與系統(tǒng)結構圖對應
用戶類型由收銀員和庫管員組成,登陸成功后,分別進去收銀員和庫管員的界面,登陸成功界面每一個都有修改密碼,修改個人信息,查詢商品信息(錄入商品信息),注銷,退出的功能。
5、重要代碼
<1>、點擊“登錄”按鈕則登錄系統(tǒng)
private void bt_Login_Click(object sender, EventArgs e)
{
if (this.cbb_Type.SelectedItem.ToString() == "收銀員")
{
if (this.tb_User.Text == "123456" && this.tb_Password.Text == "123456")
{
MessageBox.Show("收銀員登錄成功");
// 顯示收銀員主界面
MainFormUser formUser = new MainFormUser();
formUser.userName = this.tb_User.Text.ToString();
formUser.Show();
// 隱藏登錄界面
this.Hide();
}
else
{
MessageBox.Show("用戶名或密碼錯誤", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
if (this.cbb_Type.SelectedItem.ToString() == "庫管員")
{
if (this.tb_User.Text == "admin" && this.tb_Password.Text == "admin")
{
MessageBox.Show("庫管員登錄成功");
// 顯示庫管員主界面
MainFormAdmin formAdmin = new MainFormAdmin();
formAdmin.userName = this.tb_User.Text.ToString();
formAdmin.Show();
// 隱藏登錄界面
this.Hide();
}
else
{
MessageBox.Show("用戶名或密碼錯誤", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
// 點擊“退出”按鈕則退出應用程序
private void bt_Exit_Click(object sender, EventArgs e)
{
Application.Exit();
}
<2>、在用戶名輸入框中按“回車”,光標跳轉到密碼輸入框
private void tb_User_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
SendKeys.Send("{tab}");
}
}
<3>、 在密碼輸入框中按“回車”,則直接登錄
private void tb_Password_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
this.bt_Login_Click(sender, e);
}
}
<4>、Tab進入用戶名輸入框時,自動全選用戶名
private void tb_User_Enter(object sender, EventArgs e)
{
((TextBox)sender).SelectAll();
}
<5>、Tab進入密碼輸入框時,自動全選密碼
private void tb_Password_Enter(object sender, EventArgs e)
{
((TextBox)sender).SelectAll();
}