[高等教育]VB程序设计案例教程 第三章窗体和常用控件.ppt_第1页
[高等教育]VB程序设计案例教程 第三章窗体和常用控件.ppt_第2页
[高等教育]VB程序设计案例教程 第三章窗体和常用控件.ppt_第3页
[高等教育]VB程序设计案例教程 第三章窗体和常用控件.ppt_第4页
[高等教育]VB程序设计案例教程 第三章窗体和常用控件.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章窗体和常用控件,(时间:12学时),第2章窗体和常用控件,教学提示:本章简要介绍visualbasic(以下简称vb)语言。通过本章的学习,读者将了解vb程序设计语言的基本特点、主要功能,同时初步认识了vb集成开发环境和用vb开发应用程序的步骤。教学目标:掌握集成开发环境中的标题栏、菜单栏、工具栏、工具箱、窗体设计窗口、工程窗口、属性窗口的作用。掌握建立vb应用程序中的用户界面设计、编写代码、运行程序、保存程序的操作方法及生成可执行程序的方法。,第2章窗体和常用控件,2.1【案例7】窗体事件2.2【案例8】窗体操作2.3【案例9】动画数字钟12.4【案例10】跟踪鼠标和按键,2.1【案例7】窗体事件,窗体的常用事件(event)窗体的常用方法(method),窗体的常用事件(event),1.loadload事件是在窗体被装入工作区(加载)时触发的事件,当执行应用程序时,首先将窗体装入工作区,马上便自动触发load事件,先把窗体属性设置为初始值,并执行load事件过程(如果有load事件过程)。load事件过程通常给符号常量、属性变量和一般变量赋初值。unload事件:卸载事件。当窗体被卸载时发生的事件。当单击窗体右上角的关闭按钮或执行unload语句时,就触发该事件语法格式如下unload对象unloadform1,2.activate在load事件发生后,系统自动触发并执行activate事件。load事件发生时窗体是不活动的,activate事件发生时窗体已是活动的。activate事件是自动触发的事件,因此执行程序后马上要做的事可以写在该事件过程中。deavtivate事件:当另一个窗体或应用程序被激活,原窗体对象不再是活动窗体时,就会发生该事件。,3.clickclick事件是当程序运行后,用鼠标单击窗体时触发的事件。和前面两个事件比较,前面两个事件是自动触发的事件,而click事件是人为触发事件。一旦触发了click事件,便执行click事件过程(如果有click事件过程)。,4.dblclickdblclick事件是当程序运行后,用鼠标双击窗体时触发的事件。dblclick事件是人为触发事件。一旦触发了dblclick事件,便执行dblclick事件过程(如果有dblclick事件过程)。,5.resizeresize事件是当程序运行后,调出窗体或窗体的大小被改变时触发的事件。不论是用鼠标改变了窗体的大小,还是用代码改变了窗体的大小,都会触发resize事件。一旦触发了resize事件,便执行resize事件过程(如果有resize事件过程)。6、paint事件画图事件。当窗体被移动或者放大之后,该窗体部分或全部暴露时发生的事件。通常在paint事件中画窗体中显现的文字或图形。,窗体的常用方法(method),方法是vb系统提供的,它隶属于对象,用来完成特定操作。窗体常用的方法有:1.cls方法cls方法用来清除窗体上显示的正文和绘制的图形。cls方法的一般格式:窗体名.cls省略窗体名,则清除当前窗体上的正文和绘制的图形。例如:form1.cls清除窗体1上显示的正文和绘制的图形。,(1)cls方法,cls方法可以清除屏幕上的文本、图形等所有的内容。使用它时不需要给它任何的参数。例cls使用方法privatesubform_paint()窗体画图事件line(1000,1000)-(2000,1000)画一条直线printcls实例endsubprivatesubform_click()窗口点击事件msgbox“点击确定清除窗口中的内容弹出一个对话框cls清屏方法endsub,窗体的方法及其作用,2show方法用于显示窗体。语法:object.show3hide方法用于隐藏窗体,但不能将窗体卸载。语法:object.hide,(2)hide方法和show方法,hide方法可以隐藏窗口,show方法可以显示窗口。这两种方法都不需要参数。hide与show实例privatesubform_load()msgbox当单击窗体时窗体将被隐藏弹出一个对话框endsubprivatesubform_click()窗体单击事件hide隐藏窗体msgbox请单击确定显示窗体弹出一个对话框show显示窗体endsub,(3)move方法,move方法可以在程序中动态的移动窗口。move方法需要有参数,具体的语法格式如下:object.moveleft,top,width,height其中object表示窗口的对象名称。object参数是可选的,如果省略的话,那么就表示move方法移动的是当前具有焦点的窗体。left表示窗体距屏幕左边的水平坐标。left参数是必须有的。top表示窗体距屏幕上方的垂直坐标。top参数是可选的。width表示窗体的新的宽度。width参数是可选的,height表示窗体的新的高度。height参数是可选的。,move方法应用实例。,privatesubform_load()top=0left=0窗体的顶点在坐标0,0width=2000窗体的宽为2000height=1000窗体的高为1000endsubprivatesubform_click()move4000,4000,5000,4000当单击窗体时,窗体的顶点将移动到坐标4000,4000,并且窗体的宽度变为500,高度变为4000endsub,4.print方法print方法用来输出文本或表达式的值。print方法的一般格式:窗体名.print输出列表;|,省略窗体名,则在当前窗体上输出。窗体名可以是其他对象名称,如:图片框(picturebox)、打印机(printer)、立即窗口(debug)等对象名。输出列表是要输出的常量、变量或表达式,它们可以是数值表达式、字符串表达式、关系表达式或逻辑表达式,各输出项之间要用逗号或分号分割。,print方法具有计算和显示的双重功能,不仅能显示变量的值、计算表达式的值,还能显示字符串的值。例如:form1.print*在窗体form1显示:*,用print显示计算结果的例子:form1.print3*4在窗体form1显示:12,当输出列表中有多个输出项时,要使用分隔符。分隔符有两种,分别是逗号“,”和分号“;”。因分隔符不同,显示格式有分区格式和紧凑格式两种。用逗号“,”作分隔符,则各个输出项按分区格式显示。14列为一个分区,每个数据项占一个分区。用分号“;”作分隔符,则为紧凑格式显示。当输出项是字符数据时数据项之间不留空格;当输出是数值数据时,数据前留一个前导空格或显示一个负号(当是负数时显示负号),每个数据项之后留一个尾随空格。逗号和分号可以混合使用。,例如:form1.print10050;10050在窗体form1显示:10050true,显示的字符串和布尔值之间无空格。下面是用print显示用逗号分隔两个输出项的例子:print10050,10050在窗体form1显示:10050true,用1到14列显示字符串,当字符串长度小于14时用空格填充,从第15列开始显示布尔值。,如果print末尾加有分号,下一个print输出的内容将紧跟在当前print输出内容的后面例如:form1.print面向对象;form1.print程序设计在窗体form1显示:面向对象程序设计,占一行显示,且中间无空格。,如果print末尾加有逗号,则在同一行上跳到下一个显示区段显示例如:form1.print100+50;100+50,form1.print100*50;100*50完全等效于:form1.print100+50;100+50,100*50;100*50在窗体form1显示:100+50150100*505000,如果只有print关键字,无输出内容,则将光标移到下一行,不输出任何内容例如:form1.print面向对象;form1.printform1.print程序设计在窗体form1占两行显示:面向对象程序设计中间无空行。,又如:form1.print面向对象form1.printform1.print程序设计在窗体form1占三行显示:面向对象程序设计,中间空一行。,tab函数和spc函数,tab函数与print方法一起使用,对输出光标进行定位格式:tab(n)将光标定位到n指定的位置,要输出的内容在tab函数后面,可用分号隔开如:printtab(10)班级;tab(20)姓名;tab(30)性别“printtab(10);班级;tab(20);姓名;tab(30);性别,tab函数和spc函数,spc函数在print方法语句中,用spc函数跳过n个空格格式:spc(n)输出一个内容之前插入n个空格,要输出的内容在spc函数后面,可用分号隔开如:printspc(10);班级;spc(10);姓名;spc(10);性别,窗体属性,name属性表示返回代码中使用的标识对象的名称。当创建一个窗体时,系统将自动为其赋值为form1,在工程中如果添加第二个窗体,系统将为其赋值为form2,以此类推。name属性的命名规则:只能由字母、数字和下划线(_)组成,必须以字母为开头不能与其他对象名称相同name属性是系统识别窗口对象的标识符,它只能在属性窗口中修改,不能在程序中通过动态代码修改。,1、name属性,注意:对于窗体name属性的命名,最好使用能代表一定意义的英文单词,而且以frm开头,例如frmmain,frmlogin,frmregedit。,(2)backcolor属性对于窗口的backcolor属性可以在程序中通过动态代码进行设置。具体方法如下:object.backcolor=value其中object表示窗体对象的名称(必须的)value表示颜色,通常用rgb方法设置颜色。rgb共有三个参数第一个参数表示红色的值,取值范围是0255第二个参数表示绿色的值,取值范围是0255第三个参数表示蓝色的值,取值范围是0255。backcolor属性表示返回/设置窗口中文本、图像的背景颜色。设置方法如图所示。,(3)borderstyle属性,borderstyle属性表示返回/设置窗口的边框样式。它决定了窗体的主要特征。在属性窗口中,可以对borderstyle属性的值进行设置。,caption属性表示返回/设置窗口的标题栏中或图标下的文字。当创建一个窗体时,系统将自动为其赋值为form1,在工程中如果添加第二个窗体,系统将为其赋值为form2,以此类推。对于窗体的caption属性也可以在程序中通过动态代码进行设置。具体方法如下:object.caption=valueform1.caption=“欢迎进入vb世界”其中object为窗口的对象名称,value的值为字符串。,(4)caption属性,注意:虽然caption属性与name属性系统默认的名称是一样的,但是name属性表示的是窗口的标识对象的名称,而caption属性只是表示标题栏中或图标下的文字。在程序设计中,改变窗口的属性时,使用的是name属性的值而不是caption属性的值。,5、enable属性enable属性用于设置对象是否为活动的,为true值(系统默认值)时,对象为活动的,可对鼠标或按键事件产生反应;为false值时,对象为不活动的,不发生事件响应,此时窗体只有显示功能。对于窗体的enable属性也可以在程序中通过动态代码进行设置。具体方法如下:object.enable=value其中object为窗口的对象名称,value的值为布尔值(true或false)。,6、forecolor该属性指窗体前景颜色。执行print方法时,使用前景颜色在窗体显示指定的信息。forecolor的设置方法同backcolor。,7.font窗体中所显示的文本的属性,既可以在界面设计时设置,也可以在程序中修改。在界面设计时设置窗体font属性,先选择窗体,在【属性】窗格的属性列表中选择font属性,然后单击右边带有省略号的按钮,系统将弹出【字体】对话框,如图2.3所示。在字体设置对话框中完成字体、字形和大小等设置。,font属性在程序中也可以设置。这样可非常灵活地改变字体的属性,得到很好的显示效果。在程序中设置字体、大小等要用到一组属性,如:字体类型fontname该属性是字符串类型。例如,要把form1显示字体设置为“隶书”,可用下面语句实现:form1.fontname=“隶书”字体大小fontsize该属性是数值型。例如,要把form1显示字体的大小设置为30缇,可用下面语句完成:form1.fontsize=30粗体fontbold该属性是布尔型。例如,要把form1显示字体设置为粗体,可用下面语句实现:form1.fontbold=true,8.窗体的位置left和top窗体的位置由窗体left和top属性决定。运行程序时,屏幕是窗体的容器。窗体的位置是指相对于屏幕的位置,如图2.4所示。窗体的left和top属性值是屏幕左边到窗体左边的距离、屏幕上边到窗体上边的距离,其默认单位是缇。,9.窗体的大小width和height窗体的大小由窗体width和height属性决定,如图2.4所示。窗体的width属性值是窗体宽度,窗体的height属性值是窗体高度,其默认单位是缇。width和height属性是数值型,既可以在界面设计时设置窗体的大小,也可以在程序中修改。,10.图片picture窗体的picture属性决定是否在窗体加载一幅图片,该属性既可以在界面设计时设置窗体的图片,也可以在程序中修改。若在界面设计时要为窗体加载一幅图片,先选择窗体,在【属性】窗格的属性列表中选择picture属性,然后单击右边带有省略号的按钮,系统将弹出【加载图片】对话框。使用该对话框,可以选择盘符、路径和图形文件名,完成加载图片的任务。,11.startupposition设置和获取窗体首次显示时处于的位置,其值是一个整数。12、windowsstate设置和获取窗体对象的可视状态。,2.3【案例9】动画数字钟1,命令按钮是最常使用的控件之一。命令按钮最多设置的属性是caption,一般使用【属性】窗格设置该属性,以便修改命令按钮的标题。命令按钮最常使用的事件是click。在程序设计时,将单击某一命令按钮时所要实现的功能写成代码片段,形成一个click事件过程。这样,当用户单击按钮后,程序就会调用click事件过程,从而完成相应的操作。,命令按钮属性,1.name(名称)属性在程序中它是识别命令按钮的标识符。窗体中第一个建立的命令按钮默认名称是command1,后续的命令按钮默认名称分别是command2、command3等。名称属性为只读属性。只读属性的含义是,这样的属性只允许在界面设计时修改,在程序中不能修改这样的属性。2.caption属性caption属性是字符串类型,是显示在命令按钮上的标题。既可以在界面设计时通过【属性】窗格修改,也可以使用代码设置。,3.default属性default属性是布尔类型,当命令按钮的default属性设置为true时,按回车键等效于用鼠标单击该按钮。一个窗体只能有一个命令按钮的default属性设置为true。命令按钮的default属性默认值为false。4.cancel属性cancel属性是布尔类型,当命令按钮的cancel属性设置为true时,按esc键等效于用鼠标单击该按钮。一个窗体只能有一个命令按钮的cancel属性设置为true。命令按钮的cancel属性默认值为false。,5.style属性和picture属性style属性决定命令按钮的外观,只能取0或1。当此属性设置为0时,表示标准命令按钮,该按钮只能显示文字,并且不能改变背景颜色和前景颜色,更不能显示图标。当此属性设置为1时,表示图形命令按钮,图形按钮既能显示文字,又能改变背景颜色和前景颜色,还能显示图标。命令按钮的picture属性同窗体的picture属性,用来显示图形。,6.tooltiptext属性tooltiptext属性是字符串类型,用于设置命令按钮的提示信息,运行程序过程中,若鼠标指向命令按钮并停留时,显示命令按钮tooltiptext的字符串。7.enabled属性enabled属性是布尔类型,用于设置命令按钮是否可以操作,运行程序时,若命令按钮的enabled属性设置为false,命令按钮呈灰色,此时命令按钮禁止操作。当命令按钮的enabled属性设置为true时,允许用户操作命令按钮。命令按钮的enabled属性默认值为true。,8.visible属性visible属性是布尔类型,用于设置命令按钮是否可见。若命令按钮的visible属性设置为false,命令按钮不可见,此时也无法对命令按钮进行操作。当命令按钮的visible属性设置为true时,命令按钮可见。命令按钮的visible属性默认值为true。9.其他属性和窗体类似,命令按钮也有和大小、位置有关的属性,有height、left、top和width。不同的是,窗体的left和top是相对于屏幕,命令按钮的left和top是相对于窗体。另外,命令按钮有标题,因此有与font相关的属性。,标签控件属性,1.name(名称)属性在界面设计时,用name属性设置标签控件的名称。当程序员向窗体添加标签控件时,系统为每一个标签控件起了一个名字,这些名字称为系统默认名称。随着标签控件的建立,系统赋给标签控件的默认名称为label1、label2等,在默认名称中label永远保持不变,变化的是后边的序号,能表示出是第几个添加的标签控件。在程序中对控件的操作,都是通过名称来识别对象。,2.caption属性caption属性是字符串类型,用于设置该标签控件的标题。该属性值就是标签控件要显示的内容,它既可以在【属性】窗格中设定,也可用代码设定。例如:label1.caption=姓名,3.alignment属性数值型,用于设置标题的对齐方式,可设置为0、1和2,其作用如下:0左对齐,从标签的左边开始显示标题,默认值。1右对齐,标题显示在标签的右边。2中间对齐,标题显示在标签的中间。,4.autosize属性autosize属性是布尔类型,标签的大小是否随标题内容的大小自动调整。当该属性设置为true时,标签的大小随标题内容自动调整,使标签的大小正好适应标题,且不换行。当该属性设置为false时,标签的大小不随标题内容自动调整,标题超过标签尺寸的部分不能显示。默认值为false。,5.borderstyle属性数值型,用于设置边框的样式,只能取0或1,其作用如下:0标签无边界线,默认值。1标签有边界线。,6.backstyle属性数值型,用于设置背景的样式,只能取0或1,其作用如下:0透明显示,默认值。1不透明显示。,7.其他属性和窗体、命令按钮类似,标签控件也有和大小、位置有关的属性,有height、left、top和width。标签控件也有和行为有关的属性enabled和visible。另外,标签控件有标题,因此有与font相关的属性及forecolor和backcolor。标签控件也能显示提示信息,因此有tooltiptext属性。,标签实例,privatesubform_load()label_first.alignment=1设置标签的对齐方式为右对齐label_first.caption=这是我的第一个标签设置标签显示的文本label_first.font=黑体设置标签的字体label_first.fontsize=16设置标签的字体的大小label_first.height=500设置标签的高度label_first.width=3000设置标签的宽度label_first.top=0设置标签顶点的纵坐标label_first.left=0设置标签顶点的横坐标endsub,文本框属性,1.text属性text属性是字符串类型,用于设置文本框中显示的文字。该属性值是文本框要显示的内容,它既可以在【属性】窗格中设定,也可用代码改变控件显示的内容。例如:text1.text=面向对象的程序设计printtext1.text,2.passwordchar属性passwordchar属性是字符串类型,用于设置文本框中显示的字符,常用于口令输入。该属性值默认为空串(不是空格),用户输入到文本框的内容都原样显示。若该属性是星号“*”,用户输入到文本框的内容将都变成星号。例如,privatesubcommand1_click()dimyhasstring,pwasstringyh=text1.textpw=text2.textprint你输入的用户名是:;yhprint你输入的口令是:;pwendsub,3.multiline属性multiline属性是布尔类型,用于设置文本框中是否可以输入多行文本。默认值是false,此时文本框中只能输入一行文本。当设置该属性为true时,文本框可以输入多行文本。,4.scrollbars属性scrollbars属性是数值型,用于设置文本框中是否有滚动条。可取值0、1、2、3,默认值是0。其含义如下:0没有滚动条。1只有水平滚动条。2只有垂直滚动条。3同时具有水平和垂直滚动条。,5.locked属性locked属性是布尔型。用于设置是否可以编辑文本框text属性的内容,默认值是false,此时文本框的内容可以编辑。当设置该属性为true时,文本框text属性变为只读,textbox中的文本只能被访问,不能被编辑。,6.名称和其他属性和标签控件类似,文本框也有和大小、位置有关的属性,有height、left、top和width。文本框也有和行为有关的属性enabled和visible。另外,文本框能够编辑和显示文字,因此有alignment属性,有与font相关的属性及forecolor和backcolor。文本框也能显示提示信息,因此有tooltiptext属性。新建文本框时,系统的默认名称为text1、text2等。,时钟控件定时器,定时器可按照一定的时间间隔触发计时事件,执行相应的程序。它有名称、enabled、interval等属性。它的事件只有一个timer事件。,定时器,定时器的属性和事件1.常用属性(1)enabled属性定时器是否被激活,它有true或false两种属性值。当其设为true时,定时器被激活,有效可以计时。(2)interval属性返回或设置定时器控件计时的时间间隔(单位:毫秒)。其有效范围为065535。默认值为0,此时定时器无效。2.常用事件定时器控件最常用的事件就是timer事件。每经过一个由interval属性的时间间隔,便会产生一个timer事件。,定时器的应用举例例:建立一个实时时钟。程序界面设计如图所示,程序运行结果如图所示。在vb中可以用time函数获取系统的时间。,图5-8,在命令按钮【开始】事件过程command1_click()中添加如下代码:privatesubcommand1_click()timer1.enabled=trueendsub在命令按钮【停止】事件过程command1_click()中添加如下代码:privatesubcommand2_click()timer1.enabled=falseendsub在时钟控件的触发事件过程中添加如下代码:privatesubtimer1_timer()label1.caption=timeendsub,鼠标事件,当鼠标在窗体或对象上移动、按下鼠标按钮时,会发生鼠标事件。最常用的鼠标事件有click、dbclick、mousedown、mouseup、mousemove和dragdrop事件。1.mousedown事件按下鼠标任意按钮时,所触发的事件称为mousedown事件。mousedown事件与click事件不同,click事件是用鼠标左键单击命令按钮所触发的事件,mousedown事件不管是用鼠标左键还是鼠标右键,只要按下鼠标键就能触发该事件;click事件包括鼠标键的动作有按下和抬起,mousedown事件包括鼠标键的动作只有按下而无抬起。格式:privatesubform_mousedown(buttonasinteger,shiftasinteger,xassingle,yassingle),button参数:用于表示哪个鼠标键被按下,可用三位二进制数来表示,其中,鼠标左键是第0位,右键是第1位,中键是第2位。每位都有0和1两个值,分别表示键的释放和按下,这个二进制数转换成十进制数即为button参数的值。例如:当按下鼠标左键时,button参数的值为(001)2=1,shift参数:用于表示当某一个鼠标键被按下时,【shift】、【ctrl】、【alt】的按下或释放状态。【shift】键被按下时,其值为0;【ctrl】键按下时,其值为1;【alt】键按下时,其值为2。x和y分别表示当某一鼠标键被按下时,鼠标指针的x轴和y轴坐标。,2.mouseup事件释放鼠标按钮时,所触发的事件称为mouseup事件。类似于mousedown事件,鼠标左键和鼠标右键都能触发该事件,该事件包括鼠标键的动作只有抬起。3.mousemove事件鼠标光标在某一个对象上的移动或停留时,触发的事件称为mousemove事件。,事件格式,privatesubform_m

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论