1.登錄界面GIF效果圖
record three.gif
record four.gif
2.實(shí)現(xiàn)MDI主界面的主要步驟
(1)MDI容器窗體
MDI 容器窗體作為父窗體,父窗體可以將多個子窗體包容在它的工作區(qū)中瓦灶。
將窗體的IsMdiContainer屬性設(shè)置為True黄琼,它就是容器窗體。一種是在窗體的Load()事件中設(shè)置,一種是在屬性中設(shè)置:
this.IsMdiContainer=True;
image.png
(2)MDI子窗體
利用代碼形式實(shí)現(xiàn)編寫在一個MDI父窗體的某個事件處理程序中座云,創(chuàng)建一個子窗體實(shí)例formChild1并顯示在MDI父窗體的客戶區(qū)中袒炉。
frmChild = new FormChild();
frmChild.MdiParent = this;
frmChild.Show();
3旁理、主界面中涉及到的控件以及控件的重要屬性、方法
MDI窗體
屬性 | 值 |
---|---|
IsMdiContainer | True |
工具欄ToolStrip
屬性 | 說明 |
---|---|
Spring | 指定項(xiàng)是否填滿剩余空間 |
Items | 顯示的項(xiàng)的集合 |
ImageScalingSize | 顯示圖像的大小 |
事件 | 說明 |
Click | 單擊按鈕/標(biāo)簽時我磁,觸發(fā)該事件 |
菜單欄MenuStrip
屬性 | 值 |
---|---|
Name | ms_Admin ms_User |
說明 | |
Itmes | 獲取ToolStrip控件的所有項(xiàng) |
狀態(tài)欄StatuStrip
屬性 | 說明 |
---|---|
Spring | 指定項(xiàng)是否填滿剩余空間 |
Items | 顯示的項(xiàng)的集合 |
ImageScalingSize | 顯示圖像的大小 |
控件Timer
屬性 | 值 |
---|---|
Enabled | True |
Interva | 100ms |
4孽文、主界面的功能如何與系統(tǒng)結(jié)構(gòu)圖對應(yīng)
a.PNG
不同角色進(jìn)入不同主界面
在登錄界面輸入收銀員的賬戶密碼,則進(jìn)入收銀員主界面夺艰;輸入庫管員的賬戶密碼芋哭,則進(jìn)入庫管員主界面。
[圖片上傳中...(圖片3.png-74e858-1543546080617-0)]
圖片3.png
庫管員主界面包含修改密碼郁副、修改個人信息楷掉、錄入商品信息、注銷霞势、退出功能
收銀員主界面包含修改密碼烹植、修改個人信息、查詢商品信息愕贡、注銷草雕、退出功能
實(shí)現(xiàn)了與系統(tǒng)結(jié)構(gòu)圖功能的對應(yīng)
5、貼入重要代碼片段固以,并進(jìn)行詳細(xì)描述
5-(1)兩個窗體間傳值:在LoginForm中點(diǎn)擊登錄按鈕墩虹,進(jìn)入MainFormUser,同時隱藏LoginForm憨琳。登錄用戶名傳遞到MainFormUser中顯示:
// 點(diǎn)擊“登錄”按鈕則登錄系統(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("收銀員登錄成功");
}
else
{
MessageBox.Show("用戶名或密碼錯誤", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
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("庫管員登錄成功");
}
else
{
MessageBox.Show("用戶名或密碼錯誤", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
5-(2)在MainFormUser窗體中添加時間并自動更新:
// 窗口加載時诫钓,顯示當(dāng)前時間,顯示當(dāng)前用戶名
private void MainForm_Load(object sender, EventArgs e)
{
this.tssl_CurrentTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
this.tssl_User.Text = this.userName;
}
// 每隔一秒鐘更新一下顯示時間
private void timer1_Tick(object sender, EventArgs e)
{
this.tssl_CurrentTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
5-(3)C#中使用DataTime類獲取當(dāng)前的時間:
// 獲取日期+時間
DateTime.Now.ToString(); // 默認(rèn)格式的日期和時間
DateTime.Now.ToString(“yyyy-MM-dd HH:mm:ss”); // 指定格式:2018-04-09 21:02:10
// 獲取日期
DateTime.Now.ToShortDateString();// 默認(rèn)日期格式
DateTime.Now.ToString(“yyyy-MM-dd”); //指定日期格式:2018-04-09?
// 獲取時間
DateTime.Now.ToLongTimeString(); // 默認(rèn)時間格式
DateTime.Now.ToString(“hh:mm:ss”); // 指定時間格式:09:02:10
5-(4)在LoginForm中點(diǎn)擊登錄按鈕篙螟,進(jìn)入MainFormUser菌湃,同時隱藏LoginForm。登錄用戶名傳遞到MainFormUser中顯示:
登錄對應(yīng)角色界面時彈出收銀員窗體并隱藏程序主界面
if (UserInfo.userType == "收銀員")
{
// 顯示收銀員主界面
MainFormUser formUser = new MainFormUser();
formUser.Show();
// 隱藏登錄界面
this.Hide();
}
if (UserInfo.userType == "庫管員")
{
// 顯示庫管員主界面
MainFormAdmin formUser = new MainFormUser();
formUser.Show();
// 隱藏登錄界面
this.Hide();
}
QQ圖片20181201114732.png