1、第7章 窗 体本章要点:属性、事件和方法的概念窗体的常用属性窗体的常用方法事件多窗体设计7.1 属性、事件和方法的概念7.1.1 属性(属性(Property)对象中的数据、所有对象都有自己的对象中的数据、所有对象都有自己的属性。属性是用来描述和反映对象特征的属性。属性是用来描述和反映对象特征的参数。例如:控件名称(参数。例如:控件名称(Name)、标题(、标题(Caption)、颜色(、颜色(Color)、字体(、字体(FontName)等属性决定了对象展现给用户等属性决定了对象展现给用户的界面具有什么样的外观及功能。的界面具有什么样的外观及功能。7.1.2 事件(事件(Event)所谓事件
2、,是由所谓事件,是由Visual Basic预先设置好的预先设置好的、能够被对象识别的动作,例如、能够被对象识别的动作,例如Click(单击)(单击)、DblClick(双击)、(双击)、Load(装入)、(装入)、KeyDown(键盘键按下)、(键盘键按下)、MouseMove(移动(移动鼠标)等。鼠标)等。7.1 属性、事件和方法的概念7.1.3 方法(方法(Method)方法对我们来说也并不陌生,在前面的许多例方法对我们来说也并不陌生,在前面的许多例子中接触过。所谓子中接触过。所谓“方法方法”实际上是实际上是VB提供的一种提供的一种特殊的子程序,用来完成一定的操作。例如特殊的子程序,用来
3、完成一定的操作。例如VB提供提供了一个名为了一个名为Print的方法,它是用来输出信息的专用的方法,它是用来输出信息的专用过程。调用过程。调用“方法方法”的形式与调用一般的过程或函的形式与调用一般的过程或函数不同,应该指明是哪个对象调用的。其调用格式数不同,应该指明是哪个对象调用的。其调用格式如下:如下:对象名称对象名称.方法名称方法名称例如:例如:Form1.print VB程序设计程序设计7.1 属性、事件和方法的概念7.1.4 属性、方法和事件之间的关系属性、方法和事件之间的关系 Visual Basic的窗体和控件是具有自己的属的窗体和控件是具有自己的属性、方法和事件的对象。可以把属性
4、看作一个对性、方法和事件的对象。可以把属性看作一个对象的性质,把方法看作对象的动作,把事件看作象的性质,把方法看作对象的动作,把事件看作对象的响应。日常生活中的对象,如运动员手中对象的响应。日常生活中的对象,如运动员手中的篮球同样具有属性、方法和事件。的篮球同样具有属性、方法和事件。如果对篮球编程,其如果对篮球编程,其Visual Basic代码如下代码如下所示,其作用是设置篮球的属性。所示,其作用是设置篮球的属性。Basketball.Color=GreenBasketball.Radius=15Basketball.Inflated=True7.1 属性、事件和方法的概念调用篮球的方法是这
5、样的:调用篮球的方法是这样的:Basketball.InflatedBasketball.ColorBasketball.Radius篮球对一个事件的响应如下所示:篮球对一个事件的响应如下所示:Sub Basketball_Puncture()Basketball.DeflateBasketball.MakeNoise BangBasketball.Inflated=FalseBasketball.Radius=1End Sub7.1 属性、事件和方法的概念属 性名 称说 明Apearance 外形这个属性用来决定控件是否采用三维效果BackColor窗 体 背景色可以从属性框里弹出调色板,选
6、择所需要的颜色BorderStyle边 框 风格这个属性决定了窗体边框的样式,共有6种属性值;改变窗体的BordrStyle属性后,窗体在屏幕上没有变化,它只在运行时才变为所要求的样子Caption窗 体 标题出现在窗体标题栏中的文本内容ControlBox控 件 按钮用来决定是否采用控件框的属性,仅在程序运行时才有效Enabled活动性默认值为True,决定窗体能否被访问7.2 窗体的常用属性属 性名 称说 明ForeColor窗体前景色窗体上打印文字的颜色Font字体用来改变该窗体上显示信息的字体、字型和字号,它控制着直接在窗体上打印的文本显示Name窗体名称系统识别窗体的标识名,一个窗体
7、名必须以一个字母开头,可包含数字和下划线,但不能包含空格和标点符号Icon窗体图标这个属性是用户经常要使用的一种属性;当用户的应用程序在工具条上最小化或在Windows桌面上变为一个独立应用程序时,该属性决定将采用何种图标,窗体控制框里的图标也由它决定7.2 窗体的常用属性属 性名 称说 明Left、Top、Height、Width左 边 距、顶 边 距、高 度、宽度决定窗体在屏幕上的位置及窗体大小Visible可见性该属性决定窗体是否可见,默认情况下是可见的;错误地改变其值是很危险的,窗体会从眼前消失WindowState窗体状态指定窗体在运行时的三种状态:正常、最小化、最大化7.2 窗体的
8、常用属性1.Hide方法方法作用:用以隐藏作用:用以隐藏MDIForm或或Form对象,一对象,一般应用于多窗体中。般应用于多窗体中。格式:格式:对象对象.Hide说明:说明:(1)Hide方法的语法中方法的语法中“对象对象”是可选的。是可选的。它可以是一个对象表达式,其值为它可以是一个对象表达式,其值为“应用于应用于”列列表中的一个对象。如果省略表中的一个对象。如果省略“对象对象”,则带有焦,则带有焦点的窗体缺省为点的窗体缺省为“对象对象”。7.3 窗体的常用方法 (2)隐藏窗体时,它就从屏幕上被删除,并)隐藏窗体时,它就从屏幕上被删除,并将其将其Visible属性设置为属性设置为False
9、。用户将无法访问用户将无法访问隐藏窗体上的控件,但是对于运行中的隐藏窗体上的控件,但是对于运行中的Visual Basic应用程序,或对于通过应用程序,或对于通过DDE与该应用程序与该应用程序通讯的进程及对于通讯的进程及对于Timer控件的事件,隐藏窗体控件的事件,隐藏窗体的控件仍然是可用的。的控件仍然是可用的。(3)窗体被隐藏时,用户只有等到被隐藏窗)窗体被隐藏时,用户只有等到被隐藏窗体的事件过程的全部代码执行完后才能够与该应体的事件过程的全部代码执行完后才能够与该应用程序交互。用程序交互。(4)如果调用)如果调用Hide方法时窗体还没有加载,方法时窗体还没有加载,那么那么Hide方法将加载
10、该窗体但不显示它。方法将加载该窗体但不显示它。7.3 窗体的常用方法2.Show方法方法作用:用以显示作用:用以显示MDIForm或或Form对象。对象。格式:格式:对象对象.Show说明:说明:(1)Show方法的语法中方法的语法中“对象对象”是可选的。它可以是是可选的。它可以是一个对象表达式,其值为一个对象表达式,其值为“应用于应用于”列表中的一个对列表中的一个对象。如果省略象。如果省略“对象对象”,则带有焦点的窗体缺省为,则带有焦点的窗体缺省为“对象对象”。(2)如果调用)如果调用Show方法时指定的窗体没有装载,方法时指定的窗体没有装载,Visual Basic将自动装载该窗体。将自动
11、装载该窗体。(3)应用程序的启动窗体在其)应用程序的启动窗体在其Load事件调用后会自动事件调用后会自动出现。出现。7.3 窗体的常用方法3.Move方法方法作用:用以移动作用:用以移动MDIForm、Form或控件,并可或控件,并可以改变其大小。以改变其大小。格式:格式:对象对象.Move left,top,width,height说明:说明:(1)其中)其中Move方法的语法中方法的语法中“对象对象”是可选是可选的。可以是一个对象表达式,其值为的。可以是一个对象表达式,其值为“应用于应用于”列表中的一个对象。如果省略列表中的一个对象。如果省略“对象对象”,则带有,则带有焦点的窗体缺省为焦点
12、的窗体缺省为“对象对象”。7.3 窗体的常用方法 (2)参数)参数left是必须的,指示对象左边的水平坐是必须的,指示对象左边的水平坐标标(x轴轴);参数;参数top是可选的,指示是可选的,指示“对象对象”顶边的顶边的垂直坐标垂直坐标(y轴轴);参数;参数Width也是可选的,指示也是可选的,指示“对对象象”新的宽度;参数新的宽度;参数height同样是可选的,指示同样是可选的,指示“对象对象”新的高度。新的高度。(3)left、top、width和和height都为单精度值。都为单精度值。(4)只有)只有left参数是必须的。但是,要指定任何参数是必须的。但是,要指定任何其他的参数,必须先指
13、定出现在语法中该参数前面其他的参数,必须先指定出现在语法中该参数前面的全部参数。例如,如果不先指定的全部参数。例如,如果不先指定left和和top参数,参数,则无法指定则无法指定width参数。任何没有指定的尾部参数参数。任何没有指定的尾部参数则保持不变。则保持不变。7.3 窗体的常用方法【例例7-1】在窗体上分别用在窗体上分别用4个命令按钮上、个命令按钮上、下、左、右移动一个标签。下、左、右移动一个标签。7.3 窗体的常用方法Private Sub Command1_Click()Label1.Move Label1.Left,Label1.Top-10 上移上移End SubPrivate
14、 Sub Command2_Click()Label1.Move Label1.Left,Label1.Top+10 下移下移End SubPrivate Sub Command3_Click()Label1.Move Label1.Left-10 左移左移End SubPrivate Sub Command4_Click()Label1.Move Label1.Left+10 右移右移End Sub7.3 窗体的常用方法4.Print 方法方法作用:在指定对象上显示文本。作用:在指定对象上显示文本。格式:格式:对象对象.PrintSpc(n)|Tab(n)表达式列表表达式列表;|,说明:说明
15、:(1)对象:可以是窗体、图形框或打印机,缺省对)对象:可以是窗体、图形框或打印机,缺省对象在窗体上输出。象在窗体上输出。(2)Spc(n)函数:在当前位置插入函数:在当前位置插入n个空格,允许重个空格,允许重复使用。复使用。(3)Tab(n)函数:从左往右将插入点定位在绝对列函数:从左往右将插入点定位在绝对列号号n上,允许重复使用。上,允许重复使用。7.3 窗体的常用方法(4)表达式列表:要输出的数值或字符串表达式,)表达式列表:要输出的数值或字符串表达式,若省略,则输出一个空行,多个表达式之间用逗号若省略,则输出一个空行,多个表达式之间用逗号、分号分隔,也可出现、分号分隔,也可出现Spc和
16、和Tab函数。开始打印函数。开始打印的位置是由对象的的位置是由对象的CurrentX和和CurrentY属性决定属性决定,缺省为打印对象的左上角,缺省为打印对象的左上角(0,0)。(5););(分号分号):光标定位在上一个显示的字符后。:光标定位在上一个显示的字符后。(6),),(逗号逗号):光标定位在下一个打印区的开始位:光标定位在下一个打印区的开始位置处,打印区每隔置处,打印区每隔14列开始。列开始。(7)无)无“;”或或“,”时表示输出后换行。时表示输出后换行。7.3 窗体的常用方法5.Cls方法方法作用:清除运行时作用:清除运行时 Form 或或 PictureBox 所生成所生成的图
17、形和文本。的图形和文本。格式:格式:对象对象.Cls说明:说明:(1)Cls将清除图形和打印语句在运行时所产生的将清除图形和打印语句在运行时所产生的文本和图形,而设计时在文本和图形,而设计时在Form中使用中使用Picture属属性设置的背景位图和放置的控件不受性设置的背景位图和放置的控件不受Cls影响。影响。(2)调用)调用Cls之后,对象的之后,对象的CurrentX和和CurrentY属性复位为属性复位为0。7.3 窗体的常用方法6.Refresh方法方法作用:强制全部重绘一个窗体或控件。作用:强制全部重绘一个窗体或控件。格式:格式:对象对象.Refresh说明:说明:(1)在下列情况下
18、使用)在下列情况下使用 Refresh 方法:在另一个方法:在另一个窗体被加载时显示一个窗体的全部;窗体被加载时显示一个窗体的全部;(2)Refresh方法不能用于方法不能用于MDI窗体,但能用于窗体,但能用于MDI子窗体。子窗体。(3)通常,如果没有事件发生,窗体或控件的绘)通常,如果没有事件发生,窗体或控件的绘制是自动处理的。但是,有些情况下希望窗体或制是自动处理的。但是,有些情况下希望窗体或控件立即更新。控件立即更新。7.3 窗体的常用方法7.4.1 鼠标事件鼠标事件7.4 事件事件名称发生条件Click单击鼠标左键的时候发生DblClick双击鼠标左键的时候发生MouseMove鼠标移
19、动的时候连续发生MouseDown鼠标左键或者右键按下的时候发生MouseUP鼠标左键或者右键被释放的时候发生 1.MouseDown事件事件用户按下鼠标的时候所触发的事件称为用户按下鼠标的时候所触发的事件称为MouseDown事件。事件。语法如下:语法如下:说明:说明:Private Sub Object_MouseDown(Index As IntegerButton As Integer,Shift As Integer,X As Single,Y As Single)(1)Object是控件对象的名称。是控件对象的名称。(2)Index是一个整数,用来唯一标识一个在控件数组中的是一个整
20、数,用来唯一标识一个在控件数组中的控件。控件。(3)Button是一个整数,取值为是一个整数,取值为1、2和和4,用来标识触发,用来标识触发该事件的是哪一个鼠标键。该事件的是哪一个鼠标键。7.4 事件(4)Shift是一个整数,取值为是一个整数,取值为17。在。在Button参数中指定的按键被按下的情况下,参数中指定的按键被按下的情况下,指示指示Shift、Alt和和Ctrl键的状态。键的状态。(5)X和和Y是用来标识鼠标指针当前位置的。是用来标识鼠标指针当前位置的。7.4 事件取 值含 义取 值含 义03个键都向上1Shift键按下2Ctrl键按下3Shift和Ctrl键按下4Alt键按下5
21、Shift键和Alt键按下6Ctrl键和Alt键按下 73个键都按下2.MouseUp事件事件 释放鼠标按钮时触发的事件称为释放鼠标按钮时触发的事件称为MouseUp事件。语法如下:事件。语法如下:Private Sub Object_MouseUp(Index As Integer Button As Integer,Shift As Integer,X As Single,Y As Single)MouseUp事件函数使用方法同事件函数使用方法同MouseDown事件。事件。7.4 事件3.MouseMove事件事件 移动鼠标时触发的事件称为移动鼠标时触发的事件称为MouseMove事件。
22、语法如下:事件。语法如下:Private Sub Form_MouseMove(Index As Integer Button As Integer,Shift As Integer,X As Single,Y As Single)其中参数的含义同上。其中参数的含义同上。7.4 事件【例例7-2】下面通过一个简单的程序观察窗体对单下面通过一个简单的程序观察窗体对单击、双击鼠标的响应情况。击、双击鼠标的响应情况。7.4 事件查看代码【例例7-3】设计一个窗体,用户可以在窗体上实设计一个窗体,用户可以在窗体上实现绘制图形。现绘制图形。7.4 事件查看代码7.4.2 键盘事件键盘事件 VB中还有一类
23、很重要的事件是键盘事件,能中还有一类很重要的事件是键盘事件,能触发键盘事件的控件主要有复选框(触发键盘事件的控件主要有复选框(CheckBox)控件、命令按钮()控件、命令按钮(CommandButton)控件、)控件、文本框(文本框(TextBox)控件以及窗体对象等。)控件以及窗体对象等。7.4 事件事件名称发生条件KeyDown当键盘上某键被按下去时发生KeyUp键盘上的键弹起来时发生KeyPress此事件发生在键盘被按下后和字符被显示出来之前发生【例例7-4】使用键盘的使用键盘的KeyDown事件和事件和KeyUp事件示例。演示一个响应事件示例。演示一个响应F1以及与以及与Alt和和C
24、trl相联相联的组合键的键盘处理程序。该窗体上只有一个文的组合键的键盘处理程序。该窗体上只有一个文本框控件。本框控件。7.4 事件查看代码7.5.1 多窗体概述多窗体概述1.添加窗体的方法添加窗体的方法(1)从工具栏上单击)从工具栏上单击“添加窗体添加窗体”的下拉箭头,即可弹的下拉箭头,即可弹出一个列表,从中选取出一个列表,从中选取“添加窗体添加窗体”选项。选项。(2)从)从“工程工程”菜单上选取菜单上选取“添加窗体添加窗体”命令选项,即可命令选项,即可为工程添加一个新的窗体。这个新窗体的默认名称和标为工程添加一个新的窗体。这个新窗体的默认名称和标题均由工程已有的窗体数目自动排列序号决定,如第
25、二题均由工程已有的窗体数目自动排列序号决定,如第二个生成的窗体,其默认的名称为个生成的窗体,其默认的名称为Form2,标题为,标题为Form2。(3)在工程资源管理器中选定工程。用鼠标右键打开上下)在工程资源管理器中选定工程。用鼠标右键打开上下文菜单,选取文菜单,选取“添加添加”项下的项下的“添加窗体添加窗体”选项,也可选项,也可以生成一个新窗体。以生成一个新窗体。7.5 多窗体设计2.保存窗体保存窗体 选定要保存的窗体,在选定要保存的窗体,在“文件文件”菜单上选择菜单上选择“保存保存Form name”或或“Form name另存为另存为”选项,或者在选项,或者在工程资源管理器中打开其上下文
26、菜单,选取工程资源管理器中打开其上下文菜单,选取“保存保存Form name”或或“Form name另存为另存为”选项。选项。3.删除窗体删除窗体(1)在工程资源管理器中选中要删除的窗体,弹出其)在工程资源管理器中选中要删除的窗体,弹出其上下文菜单,选取上下文菜单,选取“移出移出Form name”选项。选项。(2)选定要删除的窗体,然后选择菜单)选定要删除的窗体,然后选择菜单“工程工程”|“移移出出Form name”命令即可。命令即可。7.5 多窗体设计4.制定启动窗体制定启动窗体 拥有多个窗体的工程,需要设定一个启动窗拥有多个窗体的工程,需要设定一个启动窗体,以便运行应用程序时,作为第
27、一个出现的窗体,以便运行应用程序时,作为第一个出现的窗体。系统默认第一个建立的窗体作为启动窗体。体。系统默认第一个建立的窗体作为启动窗体。需要另外设置时,可以在工程资源管理器中选定需要另外设置时,可以在工程资源管理器中选定工程,打开上下文菜单,选取工程,打开上下文菜单,选取“工程工程1属性属性”选选项,弹出项,弹出“工程工程1-工程属性工程属性”对话框。对话框。7.5 多窗体设计7.5.2 多窗体举例多窗体举例【例例7-5】设计一个学校的学生管理系统的框架,设计一个学校的学生管理系统的框架,其包括以下功能:其包括以下功能:(1)学生添加;)学生添加;(2)学生查询;)学生查询;(3)学生浏览。)学生浏览。7.5 多窗体设计查看代码本章内容结束,谢谢观看