2018-05-25
收银员/库管员系统主界面的制作
1:在Microsoft Excel中,可以同时打开多个Excel文档,而不需要新打开一个Excel窗口,这种应用程序叫做MDI(多文档界面)应用程序。
图片1.png
2:在项目中使用MDI窗体时,通常将一个MDI容器窗体作为父窗体,父窗体可以将多个子窗体包容在它的工作区之中。MDI父窗体与其子窗体之间表现出如下的特性:
MDI的容器窗体(父窗体)必须且只能有一个,它只能当容器使用,其客户区用于显示子窗体,客户区不能接受键盘和鼠标事件。
不要在容器窗体的客户区加入控件,否则那些控件会显示在子窗体中。
容器窗体的框架区可以有菜单、工具栏和状态栏等控件。
子窗体可以有多个,各个子窗体不必相同。
子窗体被显示在容器窗体的客户区之中,子窗体不可能被移出容器窗体的客户区之外。
子窗体被最小化后,其图标在容器窗体的内部,而不是在任务栏中。
子窗体可以单独关闭,但若关闭容器窗体,子窗体随同容器窗体一起被关闭。
(1/2)、MDI容器窗体
只要将窗体的IsMdiContainer属性设置为True,它就是容器窗体。一种是在窗体的Load()事件中设置,一种是在属性中设置:
this.IsMdiContainer=True;
容器窗体在显示后,其客户区是凹下的,等待子窗体显示在下凹区。不要在容器窗体的客户区设计任何控件。
图片2.jpg
(2/2)、MDI子窗体
MDI子窗体就是一般的窗体,其上可以设计任何控件,此前设计过的任何窗体都可以作为MDI子窗体。只要将某个窗体实例的MdiParent属性设置到一个MDI父窗体,它就是那个父窗体的子窗体,语法为:
窗体实例名.MdiParent=父窗体对象;
例如,下一段代码编写在一个MDI父窗体的某个事件处理程序中,创建一个子窗体实例formChild1并将其显示在MDI父窗体的客户区中:
FormChild formChild1 = new FormChild();
formChild1.MdiParent = this;
formChild1.Show();
- 菜单栏的制作
NET提供了一个 menuStrip 控件,使用户能够方便地创建菜单。
菜单栏(menuStrip)控件:
利用菜单条控件可以轻松地创建Office那样的菜单,在菜单条中可以添加菜单项(MenuItem)、组合框(ComboBox)和文本框(TextBox)
image.png
image.png
图片3.gif
- 工具栏和状态栏
工具栏及状态栏上的按钮和标签的主要属性和事件
image.pngC#中获取当前日期和时间的方法:
// 获取日期+时间�DateTime.Now.ToString(); // 默认格式的日期和时间
DateTime.Now.ToString(“yyyy-MM-dd HH:mm:ss”); // 指定格式:2018-04-09 21:02:10�// 获取日期�DateTime.Now.ToShortDateString(); // 默认日期格式�DateTime.Now.ToString(“yyyy-MM-dd”); //指定日期格式:2018-04-09�// 获取时间�DateTime.Now.ToLongTimeString(); // 默认时间格式�DateTime.Now.ToString(“hh:mm:ss”); // 指定时间格式:09:02:10
3.Timer控件的属性和事件
Timer控件,计时器,用于需要按一定时间间隔周期性执行某事件的场合,
是一个非可视化的控件。
常用属性和事件:
在主界面右下角显示当前的日期和时间:
图片4.png
扩展练习(1):使用Timer控件实现计时器界面
![![图片6.png](https://img.haomeiwen.com/i11739501/1f08c6eaad3b7c18.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ](https://img.haomeiwen.com/i11739501/2852257f5d0c7934.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
扩展练习(2):使用Timer控件实现计时器界面
image.png image.png扩展练习(3):使用Timer控件实现开门动画效果
image.png image.png
THE ENDING.....
两个已有项目进行合并
任务:项目A和项目B,将B的窗口合并到A项目中去
方法一:
以项目A为基础,将项目B的内容在项目A重新实现一遍
任务:项目A和项目B,将B的窗口合并到A项目中去
方法二(提前做好项目A和B的备份,防止合并出错):
第1步:将项目B的窗口源文件(每个窗口三个文件)拷贝到项目A的代码目录中
第2步:在项目A中引入拷贝过来的新窗口(选择MainForm.cs即可导入MainForm窗口)
图片8.png第3步:整个解决方案替换成项目A的namespace
图片9.png- 两个窗口传值
任务描述:在LoginForm中点击登录按钮,进入MainForm,同时隐藏LoginForm。登录用户名传递到MainForm中显示。
实现:在LoginForm的登录方法中,添加如下代码:
image.png- 根据角色进入不同的主窗口
界面参考设计:
收银员
图片10.png
库管员
图片11.png