2.4系统主界面
1.效果图
1.1收银员
1.2库管员
2.实现MDI主界面的主要步骤
2.1MDI容器窗体
将窗体的IsMdiContainer属性设置为True,它就是容器窗体。一种是在窗体的Load()事件中设置,另一种是在属性中设置
this.IsMdiContainer=True;
注意:容器窗体在显示后,其客户区是凹下的,等待子窗体显示在下凹区。不要在容器窗体的客户区设计任何控件
2.2MDI子窗体
MDI子窗体就是一般的窗体,其上可以设计任何控件,此前设计过的任何窗体都可以作为MDI子窗体。只要将某个窗体实例的MdiParent属性设置到一个MDI父窗体,它就是那个父窗体的子窗体,语法为:
窗体实例名.MdiParent=父窗体对象;
例如,下一段代码编写在一个MDI父窗体的某个事件处理程序中,创建一个子窗体实例formChild1并将其显示在MDI父窗体的客户区中
FormChild formChild1 = new FormChild();
formChild1.MdiParent = this;
formChild1.Show();
3.主要控件
涉及控件:MenuStrip,ToolStrip,StatusStrip,MainForm
MenuStrip:
Name:ms_Admin
ImageScalingSize:20, 20
Location:0, 0
Padding:4, 2, 0, 2
Size:452, 25
TabIndex:0
Text:menuStrip1
ToolStrip:
Name:ts_Admin
ImageScalingSize:20, 20
Location:0, 25
Size:452, 27
TabIndex:1
Text:toolStrip1
StatusStrip:
Name:ss_Admin
ImageScalingSize:20, 20
Location:0, 250
Size:452, 22
TabIndex:2
Text:statusStrip1
MainForm:
Name:MainFormAdmin
AutoScaleMode:Font
ForeColor:ControlText
IsMdiContainer:True
MainMenuStrip:ms_Admin
Size:468, 310
StartPosition:CenterScreen
Text:库管员主界面/收银员
WindowState:Maximized
4.主界面的功能与系统结构图的对应
4.1实际界面主要功能参考
收银员
库管员
4.2系统结构图
5.重要代码
窗口加载时,显示当前时间,显示当前用户名
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 = UserInfo.userName;
}
每隔一秒钟更新一下显示时间
private void timer1_Tick(object sender, EventArgs e)
{
this.tssl_CurrentTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
窗口关闭时,将整个应用程序退出(注意包括登录窗体)
private void MainFormAdmin_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}
修改密码
private void tsb_Password_Click(object sender, EventArgs e)
{
this.tsmi_Password_Click(sender, e);
}
修改用户信息
private void tsb_UserInfo_Click(object sender, EventArgs e)
{
this.tsmi_UserInfo_Click(sender, e);
}
录入商品信息
private void tsb_Record_Click(object sender, EventArgs e)
{
this.tsmi_Record_Click(sender, e);
}
退出系统
private void tsmi_Exit_Click(object sender, EventArgs e)
{
if (MessageBox.Show("确认退出?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
Application.Exit();
}
}