第五章创建Windows应用程序2本章目标理解窗体的属性和事件的作用能够使用基本控件设计窗体界面能够编写简单的事件处理程序会使用窗体的消息框3为什么要使用窗体简单强大方便灵活……4什么是窗体Windows操作系统中,处处是窗体5怎样创建Windows程序在VS中创建Windows应用程序的步骤:1、打开VS2、新建项目3、项目类型:VisualC#项目4、模板:Windows应用程序演示示例1:创建一个Windows窗体6认识WinForms项目名称主程序文件,包含Main方法我们编写代码的文件解决方案名称窗体设计器代码文件,代码为VS自动生成7Main方法位于Program.cs文件Windows程序的入口//Program.csnamespaceMyForm{staticclassProgram{……..staticvoidMain(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newForm1());}}}Main方法,程序的入口VS自动生成一般不需要理会8进一步认识窗体文件WinForms窗体有两种编辑窗口:窗体设计器窗口窗体代码编辑窗口9为什么使用partial具有双钥匙的密码箱第一把钥匙第二把钥匙为了安全,两把钥匙分开放置只有两把钥匙同时使用才能打开密码箱用partial将同一个窗体的代码分开放在两个文件中:一个存放VS自动生成的代码一个存放我们自己编写的代码10程序员编写的代码VS自动生成的代码//Form1.Designer.csnamespaceMyForm{partialclassForm1{//……privatevoidInitializeComponent(){//VS自动生成的代码this.ShowInTaskbar=false;this.Name=Form1;this.Text=Form1;this.TopMost=true;}}}运行时合到一起组成一个窗体文件怎样使用partial//Form1.csnamespaceMyForm{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}//我们编写的代码}}示例1源代码11构造函数做一些初始化的工作编译器自动调用认识窗体类//Form1.csnamespaceMyForm{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}}}冒号表示继承Form类定义了窗体的基本属性和行为我们创建的窗体都继承自Form类Form1具有相应的属性和行为Form类:.NET预定义的窗体类Form1继承自Form12窗体的重要属性Name:窗体对象的名字,类似于变量的名字BackColor:窗体的背景色ShowInTaskBar:设置窗体是否出现在任务栏StartPosition:窗体第一次出现时的位置Text:窗体标题栏显示的文字TopMost:设置窗体是否为最顶端的窗体WindowState:窗体出现时最初的状态(正常、最大化、最小化)演示示例:窗体常用属性(修改示例1)13为什么使用事件Windows系统中处处是事件:鼠标按下、鼠标释放、键盘键按下……Windows系统通过事件处理来响应用户的请求显示开始菜单我的电脑窗口打开事件触发事件响应的结果单击双击14事件驱动Windows通过随时响应用户触发的事件做出相应的响应——事件驱动机制我们需要做的:针对我们感兴趣的事件,编写相应的事件处理程序WinForms应用程序也是事件驱动的15编写事件处理程序编写事件处理程序的步骤:1、选中控件2、在“属性”窗口中单击3、找到事件4、生成事件处理方法5、编写处理代码演示示例2:MouseMove的事件处理程序16事件处理程序分析//窗体的鼠标移动事件处理程序privatevoidForm1_MouseMove(objectsender,MouseEventArgse){this.Text=String.Format(捕捉到鼠标了!({0},{1}),e.X,e.Y);}示例2中添加的事件处理程序:this关键字代表窗体本身鼠标的横纵坐标示例2源代码窗体标题栏显示的文字鼠标事件参数事件源17窗体的重要事件Load:窗体加载事件MouseClick:鼠标单击事件MouseDoubleClick:鼠标双击事件MouseMove:鼠标移动事件KeyDown:键盘按下事件KeyUp:键盘释放事件……窗体有哪些事件?18小结当鼠标在窗体上点击时,窗体的背景色改变:如果是红色,变成黄色如果是黄色,变成绿色否则变成红色参考答案提示:处理窗体的MouseClick事件利用Color类得到某种颜色:红色—Color.Red绿色—Color.Green黄色—Color.Yellow窗体的背景色:this.BackColor判断背景色:if(this.BackColor==Color.Red)//鼠标单击事件privatevoidForm1_MouseClick(objectsender,MouseEventArgse){if(this.BackColor==Color.Red){this.BackColor=Color.Yellow;}elseif(this.BackColor==Color.Yellow){this.BackColor=Color.Green;}else{this.BackColor=Color.Red;}}19窗体基本控件——菜单Windows中的菜单20如何创建菜单创建菜单的步骤:1、切换设计器2、工具箱→所有Windows窗体3、向窗体添加MenuStrip控件4、设置菜单的属性和事件演示示例3:创建管理员主界面21使用控件设计窗体演示示例4:设计“创建学员用户”窗体22窗体基本控件常用窗体基本控件及命名规范Label:标签lblTextBox:文本框txtListBox:列表框lstComboBox:组合框cboGroupBox:分组框grpPanel:面板pnlRadioButton:单选按钮rdoButton:按钮btn23如何实现窗体间的跳转演示示例5:跳转到创建学员用户窗体实现窗体间的跳转24实现窗体间的跳转步骤:1、定义窗体对象2、显示窗体定义窗体对象:被调用的窗体类名窗体对象=new被调用的窗体类名();显示窗体:窗体对象.Show();25MessageBox对象为什么使用消息框?显示消息向用户请求信息怎样显示消息框?使用MessageBox对象演示示例6:显示验证用户输入的消息框26示例6代码分析//最简单的消息框MessageBox.Show(请输入用户姓名);//带标题的消息框MessageBox.Show(请输入用户姓名,输入提示);//带标题、按钮的消息框MessageBox.Show(请输入用户姓名,输入提示,MessageBoxButtons.OKCancel);//带标题、按钮、图标的消息框MessageBox.Show(请输入用户姓名,输入提示,MessageBoxButtons.OKCancel,MessageBoxIcon.Information);MessageBoxButtons提供按钮的类型OKCancel表示“确定”、“取消”按钮MessageBoxIcon提供图标类型Information表示消息图标27消息框的返回值用户点了哪个按钮?DialogResult演示示例7:获得消息框的结果28示例7代码分析示例7代码分析:DialogResultresult;result=MessageBox.Show(请输入用户姓名,输入提示,MessageBoxButtons.OKCancel,MessageBoxIcon.Information);if(result==DialogResult.OK){MessageBox.Show(你选择了确认按钮);}else{MessageBox.Show(你选择了取消按钮);}通过“.”运算符取得某种消息框的结果29总结举出几个事件的示例。举出几个常用的控件及作用。怎样显示消息框(MessageBox)?消息框的返回值是什么?