《第二章简单的VB程序设计.ppt》由会员分享,可在线阅读,更多相关《第二章简单的VB程序设计.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章 简单的VB程序设计2.1 面向对象中的概念一、对象和类在面向对象的程序设计思想中,自然界中所有事物(包括计算机中的事物)都可以被看作一个个的对象(Object)。这些对象可能属于同一个类(Class),也可能属于不同的类。类:类:是同一事物的统称。对象对象:是类的实例化。如:下图有三个类:人、纸片、桌子有9个对象:Windows中的对象中的对象当今的应用程序都是基于Windows的。即其界面都应当和Windows具有一致性。而Windows界面中的几乎所有元素都可以看成对象。二、对象的建立和编辑有以下几个操作:建立、选定、删除、命名我们以建立如下窗口为例来介绍类型名类型名前缀对象名举例
2、CheckBox复选框复选框ChkchkReadOnlyComboBox组合框组合框CbocboHobbycommandButton命令按钮命令按钮CmdcmdExitCommonDialog公共对话框公共对话框DlgdlgFileOpenControl控件控件CtrctrCurrentDagta数据数据DatdatBookDirListBox目录列表框目录列表框DirdirSourceDrvListBox驱动器列表框驱动器列表框DrvdrvTargetFileListBox文件列表框文件列表框FilfilSourceForm窗体窗体FrmfrmPasswordFrame框架框架FrafraL
3、anguageHScrollBar水平滚动条水平滚动条HsbhsbVolumeImage图象图象ImgimgIconLabel标签标签LbllblHelpMessageLine直线直线LinlinVerticalListBox列表框列表框LstlstPolicyCodesMenu菜单菜单MnumnuFileOpenOptionButton单选框单选框(选项钮选项钮)OptoptMalePictureBox图片框图片框PicpicPhotoShape形状形状ShpshpCircleTextBox文本框文本框TxttxtNameTimer定时器定时器TmrtmrAlarmVScrollBar垂直滚
4、动条垂直滚动条vsbvsbAge三、对象的属性、事件和方法-对象的三要素1、属性:用来描述和反映对象特征的多个参数,而各个参数值就是该对象的属性值。如:命令按钮的属性可以有:Name、Caption、Color、Font 等设置对象属性的方法:(1)在设计界面阶段利用属性窗口直接设置;(2)在程序代码中利用赋值实现。格式为:对象.属性=属性值 如:Command1.caption=“确定”Label1.FontName=“黑体”Label1.FontSize=24对象的通用属性对象的通用属性对象的位置和尺寸属性(见对象的位置和尺寸属性(见P23图图1.2.8)(1)Left:控件相对于容器的X
5、坐标;(2)Top:控件相对于容器的Y坐标;(3)Width:控件的宽度;(4)Height:控件的高度。注意:能包含其它控件的控件称为容器(控件)。对象的颜色和字体属性对象的颜色和字体属性(1)BackColor:设置控件的背景颜色;(2)ForeColor:设置控件里显示图片和文本的前景颜色;(3)Font:设置控件的文字字体名称属性Name该属性是所有对象都具有的属性,是唯一的,在创建时,系统会给一个默认的名称,可根据需要进行修改。注意:在程序代码中可以通过以下方法来设置颜色使用RGB函数:如:Form1.BackColor=RGB(255,0,0)此处,RGB函数的三个参数分别对应红、
6、绿、蓝三种颜色,取值在0-255之间,0为亮度最低,255为亮度最高。使用VB内部提供的颜色常量 VB内部可以直接使用的颜色常量有8种:vbBlack、vbRed、vbGreen、vbYellow、vbblue、vbMagenta(紫红色)、vbCyan(青色)、vbWhite如:Form1.BackColor=vbMagenta另外:Font有以下系列属性FontName:字体类型。如:黑体、宋体、楷体等FontSize:字体大小(磅)。如:8、12、16等还有:fontBold(粗体)、FontItalic(斜体)、FontStrikethru(删除线)、fontUnderline(下划线
7、),这些属性值为逻辑型。对象的默认属性对象的默认属性 是指在运行时可以直接用某个对象的对象名来改变对象某个属性值。一般情况下:(1)Caption:Form、Frame、Label、CommandButton等控件使用。(2)Text:Text、ListBox、ComboBox等控件使用(3)Value:CheckBox、OptionButton、HScrellBar、VScrollBar等控件使用。这样,Text1.text=“计算机”等价与 Text1=“计算机”控件的可见和可用控件的可见和可用(1)Enabled:设置一个控件是否可以使用。默认值为True。(2)Visible:设置一个
8、控件是否可以看见。默认值为True。2、事件、事件过程和事件驱动(1)事件 对于对象而言,事件就是发生在该对象上的事情(或消息)。在VB中,系统为每种对象预先定义好了一系列事件。以下是一些通用事件:Click事件:当一个控件上按下并放开鼠标时发生的事件。DblClick:当鼠标被迅速按下并放开两次时发生的事件。KeyPress事件:按下一个对应某ASCII字符的键时触发该事件。KeyDown事件:按下键盘的任意键触发该事件。KeyUp事件:放开键盘的任意键触发该事件。MouseMove事件:移动鼠标指针时触发该事件。MouseDown事件:按下鼠标的任意键触发该事件。MouseUp事件:放开鼠
9、标的任意键触发该事件。GotFocus事件:当对象获得焦点(光标处于此对象上或该对象为当前活动状态)时触发该事件。LostFocus事件:当对象失去焦点时触发该事件。Change事件:当一个控件的内容发生改变时触发该事件。(2)事件过程 当在对象上发生事件后,应用程序就要处理这个事件,而处理的步骤就是事件过程。它是针对某一个对象的过程,并与该对象的一个事件相联系。VB应用程序设计的主要工作就是为对象编写事件过程中的程序代码。事件过程的形式如下:Private Sub 对象名_事件(参数列表).事件过程代码End Sub说明:这是VB中所有对象事件过程的语法结构。编程者只需把该对象的事件代码填写
10、在事件过程代码区即可。其它的由系统自己给出。如:单击Command1命令按钮,使命令按钮的字体大小改变为20磅,则对应的事件过程如下:Private Sub Command1_Click()Command1.FontSize=20End Sub注意注意:当用户对一个对象发出一个动作时可能同时在该对象上发生多个事件。例如,单击鼠标,同时发生了Click、MouseDown和MouseUp事件。但我们写程序时,并不要求对这些事件都进行编写代码,而只对感兴趣的事件过程编码。没有编码的是为空事件,系统也不会处理这些事件过程(3)事件驱动 在传统的面向过程的应用程序中,应用程序自身控制了执行哪一部分代码
11、和按何种顺序执行代码,即代码的执行是从第一行开始,随着程序流执行代码的不同部分。程序执行的先后次序有设计人员编写的代码决定,用户无法改变程序的执行流程。但在VB中,程序的执行发生了根本的变化。程序执行后系统等待某个事件的发生,事件发生后,系统再去执行处理该事件的事件过程,待该事件过程执行完后,系统又处于等待事件发生的状态,这就是事件驱动事件驱动。而面向对象的程序设计方法也就事件驱动程序设计方法事件驱动程序设计方法。VB程序的执行步骤如下:启动应用程序,装载和显示窗体;窗体(或窗体上的控件)等待事件的发生;事件发生时,执行对应的事件过程;重复执行步骤2、3。如此周而复始地执行,直到遇到END结束
12、语句结束程序的运行或单击“结束”按钮强行停止程序的执行。3、方法 VB中为程序设计人员提供了一种特殊的过程和函数(此处称为方法)。这些方法已经写好并封装起来,作为方法供用户直接调用。调用格式为:对象.方法名 参数名表若省略其中的对象,则表示为当前对象,一般指窗体。如:Form1.Print”欢迎您使用VB6.0”通用方法通用方法Move方法:移动控件或改变控件的大小 如:Form1.Move 0,0,600,300 注:Move后面的四个参数分别是对象的四个属性Left、Top、Width和HeightSetFocus方法:使控件获取焦点。如:form1.text1.setfocus2.2建立
13、简单的应用程序建立简单的应用程序建立一个应用程序的步骤为:新建一个工程在该工程中添加窗体,设计界面编写事件代码运行程序,反复进行测试,使之达到预期效果编译程序,产生EXE执行文件制作安装包例:设计一个程序,窗口中显示欢迎词并提供一个进入按钮和退出按钮,如果选退出则关闭程序,如果选进入则打开另外一个窗口,此窗口中有四个图标。(结果见下页)注意:此题有一个如何设置多窗体的问题2.3 窗体和基本控件一、窗体1、主要属性1)、Caption:标题。决定窗体标题栏显示的内容2)、BorderStyle:边框样式。决定窗体的外观特征。共6种。含义见P283)、Controlbox、MaxButton和Mi
14、nButton:控制菜单框、最大化按钮和最小化按钮。其值为布尔型注意:当ControlBox为False时,MaxButton和MinButton自动设置为False4)、Moveeable:可否移动。缺省为True5)、Picture:背景图片。可在属性窗口中直接设置,也可在程序代码中设置。如:form1.picture=loadpicture(“c:windowswebwallpaperwind.jpg”)6)、WindowsState:初始大小。指定窗口运行时的可视状态。共3种状态。见P287)、ScaleHeight、Scalewidth:窗体内部尺寸(除去标题栏、菜单栏、工具栏)。其
15、值分别表示当前窗体的高度和宽度。2、主要事件 窗体从开始显示到最后关闭可以称为一个生命周期,而在这一个周期的每一个阶段都会有一个特征事件来反映窗体当前的状态。看下图。创建 发生Initialize事件加载 发生Load事件获得焦点发生Activate和GotFocus事件失去焦点发生Deactivate和LostFocus事件卸载发生QueryUnload、UnLoad和Terminate事件 可见1)Initialize事件 它是一个窗体创建时最先执行的事件,此时窗体对象仍然处在外存中,执行的只是窗体的代码部分,如:设置全局变量等初始化工作。2)Load事件 此事件使窗体及所有控件都进入内存
16、,但界面仍未显示。此阶段也可放置一些初始化代码。如果在程序中要加载窗体,可使用Load语句。格式为:Load 窗体名3)Activate和Deactivate事件 当窗体执行一个activate事件后,窗体被激活,窗体被显示,同时窗体自动发生gotfocus事件,反之,当窗体发生lostfucus事件时,同时也就自动发生deactivate事件,此时,另外一个窗体被激活。注意注意:activate事件常和setfocus方法联用。如:private sub form_activate()form1.text1.setcocus end sub此事件代码的含义是:当窗体被激活时使焦点处在文本框t
17、ext1上。4)Unload事件此事件和load事件相反,它使窗体从内存中卸载(删除)。若在程序中删除窗体,可使用语句:Unload 窗体名窗体名。Unload的一种常见的用法是:unload me此处me代表当前正在运行的窗体。也可以这样用:me.caption=“欢迎使用VB”3、主要方法1)Print 方法:在对象上输出信息格式:对象.print表达式列表此处:对象对象可为窗体(form)、图形框(picturebox)或打印机 (printer)。缺省时为窗体。表达式列表表达式列表可为一个数值表达式或一字符串 例例:设计一窗体,在窗体激活时,在窗体的标题栏及窗体上显示“装入窗体”,并设
18、置一幅图片为窗体背景。当单击窗体时,在标题栏上显示“鼠标单击”,在窗体上显示“欢迎使用VB”。当双击窗体时,在标题栏上显示“鼠标双击”,去初窗体的背景,并显示“结束使用VB”。程序代码如下:Private Sub Form_Activate()Me.Caption=装入窗体Me.Picture=LoadPicture(c:windowsclouds.bmp)Me.FontSize=48Me.FontName=黑体Me.Print 装入窗体End SubPrivate Sub Form_Click()Caption=鼠标单击ClsPrint 欢迎使用VBEnd SubPrivate Sub Fo
19、rm_DblClick()Caption=鼠标双击Picture=LoadPicture()Print 结束使用VBEnd Sub2)Cls方法:清除运行时在窗体或图形框中显示的文本或图形。格式:对象.cls其中:“对象”为窗体或图形框。缺省时为窗体如:picture1.cls cls3)Move方法:用于移动窗体或控件,并可改变其大小格式:对象.Move 左边距离,上边距离,宽度,高度其中:“对象”可以是除时钟菜单外的所有控件。缺省时为窗体。例例:程序在运行时在图像框装入一图象,单击图像框使图像框移动到窗体中心。程序代码为:Private Sub Form_Load()Image1.Top=
20、0Image1.Left=0Image1.Picture=LoadPicture(c:windowsred blocks.bmp)End SubPrivate Sub Image1_Click()Image1.Move(Form1.ScaleWidth-Image1.Width)/2,(Form1.ScaleHeight-Image1.Height)/2,120,600End Sub注意:长度单位为twip。1twip=1/567(cm)4)Show方法该方法用来显示一个窗体,它兼有加载(Load)和显示(Activate)窗体两种功能。即在执行Show时,如果窗体不在内存中,则自动装入,然后
21、显示出来。格式:窗体名.Show省略窗体名为当前窗体。如:form2.Show5)Hide方法:用来将窗体暂时隐藏起来,但没有从内存中删除格式:窗体名.Hide省略窗体名为当前窗体例例:在窗体中单击鼠标,使另一个能显示日期的窗体能显示和隐藏。程序如下:对于窗体form1Private Sub Form_Click()If form2.Visible=True Thenform2.HideElseform2.ShowEnd IfEnd Sub对于窗体form2Private Sub Form_Load()Me.left=0Me.top=0Me.height=100Me.Caption=NowEn
22、d Sub二、标签(Label)1、主要属性Alignment:设置标签的对齐方式。0左对齐,1居中,2右对齐Autosize:设置标签自动改变大小以显示全部内容。WordWrap:设置文本内容在Autosize属性为True时能自动卷饶。BorderStyle:设置标签是否有边框。0无,1有。BackStyle:设置背景样式,有两种0-Transparent 透明显示1-Opaque 不透明显示三、三、文本框文本框 文本框是一个文本编辑区,用户可以在该区输入、编辑、修改和显示正文内容。1、主要属性Text:文本框无Caption属性,显示的正文内容存放在Text属性中。当程序执行时用户通过键
23、盘输入、编辑正文。Maxlength:指明文本框中能够输入的正文内容的最大长度。0:任意长字符串;非零值:字符个数的最大值;注意:在VB中字符长度以字为单位,也就是一个西文字符和一个汉字都是一个字,长度为1,占2个字节。MultiLine:当其值为True时,文本框可输入或显示多行文字,同时具有文字处理器的自动换行功能。ScrollBars:当MultiLine属性为True时,此属性才有效。其值为:0-None:无滚动条;1-Horezontal:有水平滚动条;2-Vertical:有垂直滚动条;3-Both:同时有水平和垂直滚动条注意:当加了水平滚动条后,文本框内的自动换行功能回自动消失,
24、只有按Enter键后才能回车换行。SelStart、SelLength、SelText:在程序中,对文本内容进行选择操作时,这三个属性用来标识用户选中的正文。SelStart:选定的正文的开始位置,第一个字符的位置为0,依次 类推。SelLength:选定的正文长度。SelText:选定的正文内容。例:建立如下的两个文本框。在第一个文本框中输入一段文字,选取任意一段后,单击窗体,在第二个文本框中出现刚选中的文字。程序代码如下:Private Sub Form_Click()Text2.Text=Text1.SelTextEnd SubLocked:指定文本内容是否可被编辑。默认为False,表
25、示可编辑;当设置为True时,文本内容相当于标签的作用。如:Private sub form_click()text1.locked=true text1.text=“abcdefghijklmnopqrst”End subPasswordChar:指定显示在文本框中的字符。如:text1.passwordchar=“*”例:做出下面界面2、主要事件Change事件 当用户输入新内容或当程序将Text属性设置新值,从而改变文本框的Text属性时会引发该事件。当用户输入一个字符时,就会引发一次Change事件。如,用户输入“Hello”一词,会引发5次Change事件。KeyPress事件 当用
26、户按下并释放键盘上的一个键时,就会引发焦点所在控件的KeyPress事件,此事件会返回一个KeyAscii参数到该事件过程中。如:当输入字符“a”,返回KeyAscii的值为96,通过Chr(KeyAscii)可以将ASCII码转换为所对应字符“a”。同Change事件一样,每输入一个字符就会引发一次KeyPress事件。该事件最常用的是对输入的是否为回车符(KeyAscii的值为13)进行判断,表示文本输入结束。LostFocus事件 当一个对象失去焦点或移动Tab键或单击另一个对象时都会发生LostFocus事件。LostFocus事件过程主要是用来对数据更新进行验证和确认。常用于检查Te
27、xt属性的内容,比在Change事件过程中检查有效得多。GotFocus事件 和LostFocus事件相反,当一个对象获得焦点时发生。3、常用方法 文本框最有用的方法是SetFocus,该方法是把光标移动到指定的文本框中。格式:对象.SetFocus例:建立三个文本框,一个用于给出提示信息(现要求是“请输入数字”),一个用于输入数据(以按回车作为输入结束),当数据输入正确时,另一个文本框显示正确信息,当不正确时,显示出错信息。分析:显然,Text1、Text3应为不可编辑,则三个文本框的Locked属性应分别为:True、False、True。程序运行结果如下:程序代码如下:Private S
28、ub Form_Activate()Text2.SetFocusEnd SubPrivate Sub Text2_KeyPress(KeyAscii As Integer)If KeyAscii=13 Then If IsNumeric(Text2)Then Text3.Text=正确 Else Text2.Text=Text2.SetFocus Text3.Text=错误,再输入 End If End IfEnd Sub四、四、命令按钮命令按钮(CommandButton)1、主要属性Caption:按钮上显示的文字,若无,则按钮上没有文字Style:按钮显示类型。共2种:标准类型(无图形按钮0)和图形类型(1)。Picture:若Style属性设置为1,则可显示图形文件(.bmp、.ico)ToolTipText:与Picture属性同时使用。用于仅有图形而为文字时将鼠标指向按钮时出现的文字解释。2、主要事件 一般说来,应用程序只关心按钮的Click事件。当单击命令按钮时将触发按钮的Click事件,同时执行相应的事件过程。