看系统结构的设计的引用关系,现在来说说一下开机时程序自动启动读取数据,如果有进入警戒范围的图书时就从屏幕右下角慢慢出现一个窗口往上移,等他全部出现时就停留一段时间再慢慢往下移,之后退出系统。
实现效果如下:
先说说一下怎么实现它的动作,用三个Timer控件来确定它的位置,一开始时它的位置是在最右下角我们看不到的地方,timUp控件实现它的位置向上,当它完全显示时timMiddle让它停5秒,之后timBottom让它往下。
图书信息的显示,用一个FlowLayoutPanel容器控件,来动态的显示放在它里面的Label,在该窗口类的构造函数中我们传入一个图书类Book的集合,再根据该集合中的内容来确定Label的内容和个数。
要注意的是设置Label控制的背景颜色为透明
//设置Label背景颜色为透明
labTitle.BackColor = System.Drawing.Color.FromArgb(0, 240, 240, 240);
还有,当我们双击该窗口时显示出用户编辑的主界面,双击事件是放在FlowLayoutPanel容器中实现的,但Label控件并没有实现,所以把label控制的双击事件关联到容器的双击事件中
labTitle.DoubleClick += new System.EventHandler(this.PanelShowBookInfo_DoubleClick);
具体的实现代码如下,创建工程WarningUI,添加一个窗体类frmWarning.cs