第五章用控件进行快速开发回顾窗体常用的属性和事件有哪些?各至少说出3个。分组框控件(GroupBox)和面板控件(Panel)有什么相同点,有什么区别?预习检查排列窗体上的控件有几种方法?MDI是什么意思?本章将学习哪几个高级控件?本章任务MySchool应用程序的复杂界面设计完善管理员用户界面完善添加学员用户界面完成关于界面完成登录界面的输入验证本章目标掌握排列窗体控件的几种方式能够开发简单的MDI窗体能够使用窗体的高级控件掌握简单的窗体间的数据传递的方法为什么排列控件为什么要排列控件?不美观不友好怎样排列控件——对齐对齐窗体的控件步骤1、选择要对齐的控件注意:所选的第一个控件为主控件2、“格式”→“对齐”,选择对齐的方式演示示例1:对齐“创建学员用户”窗体控件为什么使用Anchor原始窗口窗口拉大后使用Anchor使用Anchor(锚定)的结果!怎样用Anchor排列控件锚定控件步骤1、选择要锚定的控件2、设置Anchor属性3、关闭Anchor编辑器锚定控件与窗体一起动态调整控件的大小小技巧:按下“Ctrl”选择多个控件,一起设置Anchor属性演示示例2:锚定消息窗体的控件原始窗口为什么使用Dock窗口拉大后使用Dock(停靠)的结果!使用Dock怎样用Dock排列控件停靠控件将控件停靠在窗体的边缘或填充窗体停靠控件步骤1、选择要停靠的控件2、打开Dock属性编辑器3、设置停靠方式演示示例3:停靠记事本窗体的控件小结排列窗体的控件有几种方式?每种排列方式的效果是什么?为什么使用MDI开始录入文字在同一记事本应用程序中,不允许创建第二个文本文件新建一个记事本来打开第二个文本文件在单文档应用程序中一次只能打开一个文件什么是MDI在MDI应用程序中可以同时打开多个文件父窗口子窗口创建MDI示例演示示例4:设置管理员窗体为MDI怎样创建MDI创建MDI的步骤:1、设置父窗体的IsMDIContainer属性2、设置子窗体的MdiParent属性ChildFormchildForm=newChildForm();childForm.MdiParent=this;childForm.Show();创建子窗体的对象设置子窗体的父窗体显示子窗体建立子窗体窗口列表步骤:1、在父窗体中添加菜单条2、添加“窗口”菜单3、设置菜单控件的MdiWindowListItem属性WinForms高级控件典型的工具条典型的状态条WinForms控件——工具条演示示例5:为管理员主窗体添加工具条WinForms控件——状态条演示示例6:为管理员主窗体添加状态条工具条和状态条的属性工具条/状态条的主要属性属性说明Items显示在工具条/状态条中项的集合ImageScalingSize工具条或状态条中的项显示的图像的大小工具条和状态条的成员工具条或状态条按钮和标签的主要属性和事件属性说明DisplayStyle设置图像和文本的显示方式Image按钮/标签上显示的图片Text按钮/标签上显示的文本事件说明Click单击按钮/标签时,触发该事件WinForms控件——选项卡典型的选项卡WinForms控件——选项卡演示示例7:使用TabControl选项卡的属性选项卡控件(TabControl)的属性属性说明MultiLine是否可以显示多行选项卡TabPages包含的选项卡页的集合SelectedIndex当前所选选项卡页的索引值WinForms控件——图片框典型的图片框图片框、图像列表、定时器演示示例8:创建关于(About)窗体定时器控件Timer定时器控件(Timer)的属性和事件属性说明Interval事件发生的频率,以毫秒为单位Enabled是否定时引发事件事件说明Tick定时发生的事件模式窗体演示示例9:模式窗体显示模式窗体:ShowDialog()方法用户输入的验证判断用户进行了必要的输入和选择单击“登录”按钮时验证判断控件的Text属性弹出消息框提示用单独的方法实现验证演示示例10:验证登录窗体的用户输入示例10代码分析//验证用户是否进行了输入和选择privateboolValidateInput(){if(this.txtLoginId.Text.Trim()==){//弹出消息框MessageBox.Show(请输入用户名,输入提示,MessageBoxButtons.OK,MessageBoxIcon.Information);this.txtLoginId.Focus();returnfalse;}//…else{returntrue;}}示例10源代码验证Text属性空格不算输入将光标停在控件上验证通过返回真示例10关键代码:窗体间的数据传递在管理员窗体状态条显示当前登录用户名根据登录类型,跳转到相应的窗体新建UserHelper类,包括登录名字段注:字段相当于Java中的属性窗体间的数据传递演示示例11:窗体间的数据传递示例11代码分析UserHelper类的字段publicclassUserHelper{//用户名、登录类型publicstaticstringloginId=;publicstaticstringloginType=;}静态的,使用类名访问public,在其他类中可以访问总结在窗体上排列控件的方式有哪几种?什么是MDI?使用什么方法显示模式窗体?Thankyou