第12章Windows窗体应用程序设计.ppt
《第12章Windows窗体应用程序设计.ppt》由会员分享,可在线阅读,更多相关《第12章Windows窗体应用程序设计.ppt(141页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程主讲人:第12章 Windows窗体应用程序设计12.1 Windows窗体介绍窗体介绍12.2 基本基本Windows控件控件12.3 菜单、工具栏与状态栏菜单、工具栏与状态栏12.4 高级控件与组件高级控件与组件12.5 通用对话框通用对话框12.6 综合实例综合实例系统登录实现系统登录实现 窗体是窗体是Windows窗体应用程序的基本显示单元,窗窗体应用程序的基本显示单元,窗体实质上是一块白板(或者容器),开发人员可以向窗体实质上是一块白板(或者容器),开发人员可以向窗体上放置各类控件,以丰富窗体上面的交互元素。窗体体上放置各类控件,以丰富窗体上面的交互元素。窗体实际上是实际上是Sy
2、stem.Windows.Forms.Form类或者其派生类类或者其派生类的实例。我们每设计一个窗体,其实都是在设计一个的实例。我们每设计一个窗体,其实都是在设计一个Form派生类。派生类。使用使用“ Windows窗体应用程序窗体应用程序”模板创建模板创建Windows窗体应用程序。窗体应用程序。图12-1 选择正确的模板创建Windows窗体应用程序创建后的创建后的Windows窗体应用程序,默认已创建一个窗体应用程序,默认已创建一个Form1窗体。可窗体。可通过在通过在Visual Studio的解决方案资源管理器中的项目节点上点击鼠标右的解决方案资源管理器中的项目节点上点击鼠标右键,选
3、择键,选择“添加添加”“Windows窗体窗体”,来添加新窗体。双击窗体节,来添加新窗体。双击窗体节点点“Form1.cs”,可以进入窗体的设计状态。,可以进入窗体的设计状态。图12-2 新建窗体在解决方案资源管理器中,点击窗体节点左侧的三角展开符号,可在解决方案资源管理器中,点击窗体节点左侧的三角展开符号,可看到构成该窗体的三个物理文件:看到构成该窗体的三个物理文件:Form1.cs、Form1.Designer.cs、Form1.resx。开发人员手动编写的代码存于。开发人员手动编写的代码存于Form1.cs文件中。文件中。图12-3 窗体对应的三个物理文件窗体创建后,可通过调整窗体的属性
4、来改变窗体的样式、外观、窗体创建后,可通过调整窗体的属性来改变窗体的样式、外观、布局以及行为方式等。布局以及行为方式等。表12-1 窗体的常用属性属性名属性名属性作用属性作用常用可选值常用可选值值作用值作用说明说明Name窗体名称,唯一标识,同一项目下的窗体Name属性值必须唯一 该属性为通用属性,所有的Windows控件及组件都具备该属性ControlBox控制窗体右上角最大化、最小化、关闭按钮的可见性True显示 False不显示MaximizeBox仅控制最大化按钮的可用性True可用 False不可用MinimizeBox仅控制最小化按钮的可用性True可用 False不可用Enabl
5、ed控制窗体及其内部控件、组件是否可用True可用该属性为通用属性,如果容器组件的Enabled属性设为False,则容器内的所有控件、组件都不可用False不可用表12-1 窗体的常用属性属性名属性名属性作用属性作用常用可选值常用可选值值作用值作用说明说明IsMdiContainer是否是MDI父窗体True是如果一个窗体被设为MDI父窗体,再打开其它窗体时,可以以此窗体为父窗体,呈现出子窗体内嵌在父窗体内的效果False否FormBorderStyle控制窗体的边框样式None无边框 FixedSingle固定的单行边框Sizable可调大小的边框 Location控制窗体左上角的坐标点
6、所有可视控件都具备该属性,用代码实现时,还可以通过Left属性和Top属性来设置该坐标。Left为横坐标,Top为纵坐标Width控制窗体的宽度 所有可视控件都具备该属性,在属性窗口中,需展开Size属性才能看到该属性Height控制窗体的高度 Text设置窗体的标题 TopMost控制窗体是否始终在前True始终在前 False不始终在前表12-1 窗体的常用属性属性名属性名属性作用属性作用常用可选值常用可选值值作用值作用说明说明StartPosition 控制窗体非最大化状态下,初始显示的位置 Manual 窗体的位置由 Location 属性确定 CenterScreen窗体在当前显示窗
7、口中居中CenterParent窗体在其父窗体中居中WindowsDefaultLocation窗体定位在 Windows 默认位置WindowState 窗体初始运行时的显示状态 Normal正常尺寸显示 Minimized最小化显示Maximized最大化显示可以通过两种方式设置窗体的属性:通过属性窗口进行可视化设置可以通过两种方式设置窗体的属性:通过属性窗口进行可视化设置或通过编写或通过编写C#代码来设置。代码来设置。图12-4 通过窗体的属性窗口修改Text属性图12-5 通过代码设置窗体属性窗体所有的属性也都可通过直接编写代码方式达到同样的效果。窗体所有的属性也都可通过直接编写代码方
8、式达到同样的效果。【实例实例12-1】创建一个符合外观要求的窗体。创建一个符合外观要求的窗体。实例描述:设置窗体标题为实例描述:设置窗体标题为“我的第一个窗体程序我的第一个窗体程序”,设置窗体,设置窗体宽度、高度分别为宽度、高度分别为400px,并令窗体不可使用鼠标拖拽的方式调整,并令窗体不可使用鼠标拖拽的方式调整大小,同时禁用窗体的最大化按钮。大小,同时禁用窗体的最大化按钮。图12-6 实例12-1运行效果实例分析:可通过实例分析:可通过Text属性来控制窗体属性来控制窗体标题,通过标题,通过Width、Height属性控制窗体的属性控制窗体的宽度和高度,通过宽度和高度,通过FormBord
9、erStyle属性开属性开控制窗体边框的可调性,通过控制窗体边框的可调性,通过MaximizeBox属性控制最大化按钮的可用性。属性控制最大化按钮的可用性。【实例实例12-1】创建一个符合外观要求的窗体。创建一个符合外观要求的窗体。实例实现:创建项目名称为实例实现:创建项目名称为Example12_1的窗体应用程序,双击的窗体应用程序,双击自动创建的自动创建的Form1窗体,在出现的窗体,在出现的Form1_Load方法中输入下列代码:方法中输入下列代码:private void Form1_Load(object sender, EventArgs e) this.Text = 我的第一个窗
10、体程序我的第一个窗体程序; this.Width = 400; this.Height = 400; this.MaximizeBox = false; this.FormBorderStyle = FormBorderStyle.FixedSingle; 应用窗体的方法可以动态改变窗体的行为,如显示、隐藏、关闭应用窗体的方法可以动态改变窗体的行为,如显示、隐藏、关闭窗体等。窗体等。表12-2 窗体的常用方法方法名方法名方法作用方法作用Show()无模式显示窗体。窗体实例化后,可以通过调用本方法令窗体显现。本方法与设置窗体的Visible属性为True效果相同。注意:窗体的Visible属性只
11、能通过代码调用,属性窗口中看不到该属性。本方法为通用方法,可视控件都具有该方法ShowDialog()将窗体以模式对话框的形式显示Hide()隐藏窗体。本方法与设置窗体的Visible属性为False效果相同。该方法是通用方法,可视控件都具有该方法Close()关闭窗体【实例实例12-2】创建一个创建一个Windows窗体应用程序,验证上述窗体应用程序,验证上述4个方法。个方法。实例描述:在初始运行的窗体中放置四个按钮,分别是【无模式实例描述:在初始运行的窗体中放置四个按钮,分别是【无模式打开第二窗体】、【模式打开第二窗体】、【隐藏第二窗体】、打开第二窗体】、【模式打开第二窗体】、【隐藏第二窗
12、体】、【关闭初始窗体】。【关闭初始窗体】。图12-7 实例12-2界面效果实例分析:以无模式方式实例分析:以无模式方式打开第二窗体,需要调用第打开第二窗体,需要调用第二窗体的二窗体的Show()方法;以模方法;以模式方式打开第二窗体,需要式方式打开第二窗体,需要调用第二窗体的调用第二窗体的ShowDialog()方法,隐藏第二窗体;需要方法,隐藏第二窗体;需要调用第二窗体的调用第二窗体的Hide()方法,方法,关闭初始窗体,需要调用初关闭初始窗体,需要调用初始窗体的始窗体的Close()方法。方法。实例实现:实例实现:(1)打开)打开Visual Studio,创建项目名称为,创建项目名称为E
13、xample12_2的窗体应的窗体应用程序。用程序。(2)右键点击资源管理器中的项目节点,新建)右键点击资源管理器中的项目节点,新建Windows窗体窗体Form2。(3)双击)双击Form1.cs节点,打开初始窗体节点,打开初始窗体Form1的设计模式。的设计模式。(4) 向向Form1中添加按钮控件:在中添加按钮控件:在Visual Studio左侧的工具箱左侧的工具箱中,展开中,展开“所有所有Windows窗体窗体”组,找到按钮控件组,找到按钮控件“Button”,按,按住鼠标左键,将其拖入住鼠标左键,将其拖入Form1的设计区中。工具箱如图的设计区中。工具箱如图12-8所示。所示。【实
14、例实例12-2】创建一个创建一个Windows窗体应用程序,验证上述窗体应用程序,验证上述4个方法。个方法。【实例实例12-2】创建一个创建一个Windows窗体应用程序,验证上述窗体应用程序,验证上述4个方法。个方法。图12-8 工具箱实例实现:实例实现:(5)右键点击放入设计区中的按钮,选择)右键点击放入设计区中的按钮,选择“属性属性”,弹出属性,弹出属性窗口,修改按钮的窗口,修改按钮的Text属性值为属性值为“无模式打开第二窗体无模式打开第二窗体”。(6)重复步骤)重复步骤4和和5。再向窗体。再向窗体Form1中添加三个按钮,中添加三个按钮,Text属属性分别为:性分别为:“模式打开第二
15、窗体模式打开第二窗体”、“隐藏第二窗体隐藏第二窗体”、“关闭初关闭初始窗体始窗体”。(7)分别双击四个按钮,系统会自动添加四个按钮的)分别双击四个按钮,系统会自动添加四个按钮的Click事件事件处理函数。在各个按钮的事件处理函数及处理函数。在各个按钮的事件处理函数及Form1类中添加代码,完类中添加代码,完整的整的Form1类代码如下:类代码如下:【实例实例12-2】创建一个创建一个Windows窗体应用程序,验证上述窗体应用程序,验证上述4个方法。个方法。实例实现:实例实现: public partial class Form1 : Form public Form1() Initializ
16、eComponent(); Form2 frm;/定义第二窗体引用,仅用于无模式显示定义第二窗体引用,仅用于无模式显示 /“无模式打开第二窗体无模式打开第二窗体”按钮的事件处理函数按钮的事件处理函数 private void button1_Click(object sender, EventArgs e) frm = new Form2();/实例化第二窗体对象实例化第二窗体对象 frm.Show(); /“模式打开第二窗体模式打开第二窗体”按钮的事件处理函数按钮的事件处理函数 private void button2_Click(object sender, EventArgs e) Fo
17、rm2 frm2 = new Form2();/实例化第二窗体对象实例化第二窗体对象 frm2.ShowDialog(); /“隐藏第二窗体隐藏第二窗体”按钮的事件处理函数按钮的事件处理函数 private void button3_Click(object sender, EventArgs e) frm.Hide(); /“关闭初始窗体关闭初始窗体”按钮的事件处理函数按钮的事件处理函数 private void button4_Click(object sender, EventArgs e) this.Close(); 【实例实例12-2】创建一个创建一个Windows窗体应用程序,验证
18、上述窗体应用程序,验证上述4个方法。个方法。每个窗体或控件都有多个事件,当用户针对窗体或控件进行不同每个窗体或控件都有多个事件,当用户针对窗体或控件进行不同的操作时,会触发不同的事件,程序员要做的事情就是为相应的事的操作时,会触发不同的事件,程序员要做的事情就是为相应的事件创建事件处理函数,并在事件处理函数中编写正确逻辑的代码。件创建事件处理函数,并在事件处理函数中编写正确逻辑的代码。表12-3 窗体的常用事件事件名事件名事件作用事件作用Load加载事件,窗体在向内存加载过程中触发该事件Click单击事件,当用鼠标在窗体上单击时触发该事件。该事件为通用事件,多数控件和组件都具备该事件FormC
19、losing正在关闭事件。当窗体正在关闭时,触发该事件KeyDown键盘按下事件。当窗体获取焦点,并按下键盘按键时,触发该事件。该事件为通用事件,多数控件和组件都具备该事件KeyUp键盘弹起事件。当窗体获取焦点,且键盘按键由按下状态变为弹起状态时,触发该事件。该事件为通用事件,多数控件和组件都具备该事件KeyPress键盘敲击事件。当窗体获取焦点,并敲击键盘按键时触发该事件。该事件为通用事件,多数控件和组件都具备该事件MouseDown鼠标按下事件。当鼠标按键在窗体上按下时,触发该事件。该事件为通用事件,多数控件和组件都具备该事件MouseUp鼠标弹起事件。当鼠标按键在窗体上由按下状态变为弹起
20、状态时,触发该事件。该事件为通用事件,多数控件和组件都具备该事件MouseMove鼠标移动事件。当鼠标按键在窗体上移动时,触发该事件。该事件为通用事件,多数控件和组件都具备该事件MouseEnter鼠标进入事件。当鼠标进入窗体区域时,触发该事件。该事件为通用事件,多数控件和组件都具备该事件Paint绘图事件。窗体在显示或可见区域发生变化时会触发该事件。该事件为通用事件,多数控件和组件都具备该事件每个窗体、控件或组件都有一个默认事件,在设计区双击窗体、每个窗体、控件或组件都有一个默认事件,在设计区双击窗体、控件或组件时,会自动生成其默认事件的事件处理函数。例如,窗控件或组件时,会自动生成其默认事
21、件的事件处理函数。例如,窗体的默认事件是体的默认事件是Load事件,所以双击窗体时,会自动生成窗体事件,所以双击窗体时,会自动生成窗体Load事件的事件处理函数;按钮的默认事件是事件的事件处理函数;按钮的默认事件是Click事件,双击按钮时,事件,双击按钮时,会自动生成按钮会自动生成按钮Click事件的事件处理函数。非默认事件需通过属性事件的事件处理函数。非默认事件需通过属性窗口的窗口的“事件事件”选项卡来完成。选项卡来完成。图12-9 属性窗口的事件选项卡【实例实例12-3】创建一个创建一个Windows窗体应用程序,验证窗体事件的应用。窗体应用程序,验证窗体事件的应用。实例描述:窗体加载时
22、,设置窗体始终在前显示,且禁用窗体的实例描述:窗体加载时,设置窗体始终在前显示,且禁用窗体的最小化按钮和最大化按钮,点击窗体的关闭按钮时,要首先给予对最小化按钮和最大化按钮,点击窗体的关闭按钮时,要首先给予对话框提示,如果用户确认关闭,继续完成窗体的关闭,否则取消关话框提示,如果用户确认关闭,继续完成窗体的关闭,否则取消关闭动作。闭动作。图12-10 实例12-3运行效果实例分析:窗体加载时会触发窗体的实例分析:窗体加载时会触发窗体的Load事件,令窗体始终在前可通过事件,令窗体始终在前可通过TopMost属性来控制,禁用窗体最小化和最大化按钮属性来控制,禁用窗体最小化和最大化按钮可分别通过可
23、分别通过MinimizeBox和和MaximizeBox属属性控制。点击窗体关闭按钮时会触发性控制。点击窗体关闭按钮时会触发FormClosing事件,对话框可以使用事件,对话框可以使用MessageBox.Show()方法来实现方法来实现实例实现:实例实现:(1)创建)创建Windows 窗体应用程序项目窗体应用程序项目Example12_3。(2)使用本节介绍的方法,创建)使用本节介绍的方法,创建Load事件和事件和FormClosing事件事件的事件处理函数。的事件处理函数。(3)在)在Form1.cs类文件中编写代码如下:类文件中编写代码如下:【实例实例12-3】创建一个创建一个Win
24、dows窗体应用程序,验证窗体事件的应用。窗体应用程序,验证窗体事件的应用。实例实现:实例实现: public partial class Form1 : Form public Form1() InitializeComponent(); /关闭窗体事件关闭窗体事件 private void Form1_FormClosing(object sender, FormClosingEventArgs e) /弹出确认对话框,参数一为提示信息,参数二为对话框标题,参数三控制对话框的按钮类型弹出确认对话框,参数一为提示信息,参数二为对话框标题,参数三控制对话框的按钮类型 DialogResult
25、dr= MessageBox.Show(确认关闭该窗体吗?确认关闭该窗体吗?, 关闭确认关闭确认, MessageBoxButtons.YesNo); /如果点击了对话框上的如果点击了对话框上的“否否”按钮按钮 if (dr=DialogResult.No) e.Cancel = true;/取消进一步操作取消进一步操作 /窗体加载事件窗体加载事件 private void Form1_Load(object sender, EventArgs e) this.TopMost = true;/始终在前始终在前 this.MinimizeBox = false;/禁用最小化按钮禁用最小化按钮 t
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第12章 Windows窗体应用程序设计 12 Windows 窗体 应用 程序设计
限制150内