《《VB编程基础》PPT课件 (2).ppt》由会员分享,可在线阅读,更多相关《《VB编程基础》PPT课件 (2).ppt(88页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、VB编程第一章 VB概述VB是Microsoft公司推出的一个可视化的面向对象的应用程序开发工具,目前,已经发布了6个版本,最新版本是6.0,于1998年8月发布。调查报告显示,VB的使用量在编程语言市场中所占比例最高。VB的特点可视化面向对象事件驱动1可视化程序设计传统的编程语言需要编写大量的代码来实现界面,而可视化程序设计只需按设计要求把开发环境提供的大量界面元素(如文本框和命令按钮等)在屏幕上画出来,并可直观、动态地调整界面元素的风格和样式,直到满意为止。面向对象编程传统的结构化语言(如C,Pascal和Basic等)都是采用面向过程的编程方法来解决问题。在面向过程的编程方法中,代码和数
2、据是分离的,由此带来很多缺陷,其中最主要的就是程序的可维护性差。面向对象编程则把数据和处理数据的代码封装到一个类中,类的实例就是对象。与面向过程的编程方法相比,面向对象编程方法有三个优点:程序易于阅读和理解;程序易于修改;对象能重复使用多次,即程序员可以随时根据需要将对象插入到程序中去。在VB中,对象的基本操作是:对象.属性=值对象.方法也可以从对象的属性中得到一个新的对象:SetObject=对象.属性事件驱动的编程机制在面向过程的编程方法中,每个程序通常包含一个主程序和若干个子程序,由每个子程序来处理某个小问题,再由主程序自顶向下调用各子程序来逐步解决整个问题。VB彻底改变了这种编程机制。
3、在VB中,没有传统意义上的主程序,程序执行通过事件来驱动,即只有在事件发生时,程序才执行,若没有发生任何事件,则处于停滞等待状态。两组最常用的事件是鼠标事件和键盘事件。鼠标事件:Click、DblClick、MouseDown、MouseUp、MouseMove等。键盘事件:KeyDown、KeyUp、KeyPress等。其它事件:Change、GotFocus、LostFocus等VB开发环境VB拥有一个集成式的开发环境,所有的图形界面设计工作和代码的编写、调试、运行和编译等均在此开发环境中完成。VB开发环境包括标题栏、菜单栏、工具栏、工具箱、窗体设计器、窗体布局窗口、工程管理器、属性窗口及
4、其它窗口。2标题栏在开发环境的顶部,显示正在操作的工程名称及工作状态。菜单栏包含所有VB可用的命令,除了标准的“文件”、“编辑”、“视图”、“窗口”和“帮助”菜单外,还有编程专用的“工程”、“格式”和“调试”菜单。工具栏提供对VB开发环境下常用命令的快速访问。默认时,VB启动后只显示“标准”工具栏,其他工具栏(如“调试”和“编辑”工具栏等)可以选择“视图”菜单的“工具栏”子菜单上的命令来显示。工具箱中的每个工具代表一种控件。程序员在界面设计时就是利用工具箱中的工具在窗体上画各种控件。新建工程中,工具箱只包括内部控件。可以通过“增加部件”命令在工具箱中增加其他控件(ActiveX控件)。窗体是程
5、序运行时面向最终用户的一个窗口。开始一个新的工程时,VB将创建一个空窗体并命名为“Form1”。设计窗体时,“标准”工具栏右侧的两对数据表示对象的位置和大小,位置和大小默认使用的度量单位是缇(Twip),一缇等于1/20像素点,而72个像素点等于1英寸,因而一缇等于1/1440英寸。窗体运行时在屏幕上的初始显示位置,可以通过窗体布局窗口来设置。窗体布局窗口中,有一个虚拟的显示器屏幕,在屏幕上有当前窗体大小和位置的镜像,用鼠标拖动该镜像即可布置窗体的位置。在VB中,把开发一个应用程序视为一项工程,工程本身通过工程管理器来管理。在工程管理器中,工程中的所有文件按类型以层次结构方式显示。工程中的文件
6、有窗体文件、标准模块文件、类模块文件等类型。属性窗口用来设置对象属性,它是由对象列表框、排序选项卡、属性列表和属性说明几部分构成。对象列表框显示应用程序中每个对象的名字和所属的类;排序选项卡有两个,一个按字母顺序排列属性,另一个按逻辑分类排列属性;属性列表的左列显示属性名称,右列用于编辑和查看属性值;在属性列表中选择一个属性后,就会在属性说明中列出该属性的功能描述。创建VB应用程序步骤创建一个新工程设计应用程序的界面设置对象属性编写程序代码运行应用程序保存程序生成可执行文件3创建一个新工程设计应用程序的界面设置对象属性编写程序代码运行应用程序保存程序,生成可执行文件生成的可执行文件可以脱离VB
7、开发环境,在Windows环境下运行。但文件在运行时需要一些基本动态链接库(DynamicLinkLibrary,DLL)文件的支持,如运行文件的计算机没有安装VB程序,则必须把相关的DLL文件拷贝到机器中,否则,程序将无法运行。此外,如果程序中用到ActiveX控件和其他可执行文件,在提交时也不能遗漏。因此,通过编译生成可执行文件的方法来提交程序比较麻烦,最好使用VB的“Package&Deployment向导”将程序制作成安装盘。第二章 VB语言基础代码模块编程工作中最主要的工作是编写程序代码。VisualBasic的代码存储在三种类型的模块中:窗体模块标准模块类模块1窗体模块窗体模块保存
8、在扩展名为.frm的文件中。一个应用程序可以包含多个窗体,因此可以有多个以.frm为扩展名的窗体模块。默认时,应用程序只有一个窗体,如果要增添新的窗体,选择“工程”菜单下的“添加窗体”命令。标准模块当应用程序有多个窗体时,这时可能会发现在几个窗体中有共同都要执行的公共代码。如果不希望在不同窗体中重复代码,就可以创建一个独立模块,它包含实现公共代码的过程。独立模块就是标准模块,文件扩展名为.bas。通过标准模块,可以建立一个含有共享代码的模块库,这些模块库可以被不同的应用程序使用。类模块类模块的的扩展名为.cls,是面向对象编程的基础。可以在类模块中编写代码建立新的对象。这些新对象可以包含自定义
9、的属性和方法。类模块既包含代码又包含数据,可视为没有物理表示的控件。代码窗口代码窗口是用来编写程序代码的地方,应用程序中每个代码模块都有一个相应的代码窗口。代码窗口中的代码被分成不同的代码段,一个段对应一个过程,用过程列表框可以实现相互切换。2有两种类型的过程:通用过程和事件过程。通用过程包括对变量、常数、类型等的声明以及自定义的过程(Sub过程、Function过程以及Property过程)。事件过程是窗体或窗体中的控件响应事件的过程。不同的对象有不同的响应事件,可以根据需要产生不同的事件过程,如对于按钮对象,可产生Click事件、MouseDown事件MouseMove事件等。类模块只列举
10、类本身的事件过程初始化和终止。标准模块不支持事件,所以没有任何事件过程。变量程序在运行过程中,常常需要临时存储数据,这时就需要用到变量。可以把变量看作内存中存放未知值的所在处。变量有名字和数据类型。3变量的命名变量的命名必须遵循以下规则:名字必须以字母开头,不能以数字或其他字符开头;名字中不能含有句号、空格;名字不能超过255个字符;名字不能和关键字同名,如If、Loop(预定义语句),Len、Abs(函数),Or、Mod(运算符)等。每个变量都有各自的数据类型,数据类型决定了变量能够存储哪种类型数据。VisualBasic有下列数据类型:数值型(Numeric)字符串型(String)布尔型
11、(Boolean)日期型(Date)对象型(Object)变体型(Variant)变量声明变量声明实际上是给变量分配内存,有两种方式,即显式声明与隐式声明。显式声明是用声明语句(如Dim)来声明变量,如:DimmetersAsIntegerDimgreetingsAsString还可以只声明变量,但不指定类型。VisualBasic会生成可以放置任何类型的一般变量。下面语句:Dimtemp,var,generic生成三个变体(Variant)类型的变量。如果已经知道变量的类型,应尽量避免使用Variant型,因为处理由变体类型组成的表达式,要比处理使用明确类型的同一表达式慢30%。如要VB强制
12、显式变量声明,只要在窗体或模块的声明部分加上一条语句:OptionExplicit该语句让编译器检查每个变量之后再使用这个变量,如果要用的变量没有声明,则发出一个错误消息。如果省略OptionExplicit语句,则根据需要自动生成变量。变量的作用域变量被声明后不是在任何地方都可以被引用,每个变量都有它的作用域。按作用域,变量可分为过程级、模块级和全局变量。过程内部声明的变量称为过程级变量或局部变量,这样的变量只有在声明它们的过程中才能使用,即无法在一个过程中访问另一过程中的变量。因此,在不同的过程中可以使用相同的变量名,而不必担心有什么冲突。过程级变量要用Dim或Static关键字声明。用D
13、im语句声明的变量,只有在该过程执行时才存在,过程一结束,该变量的值也就消失了。用Static声明的变量又称静态变量,这种变量的值在整个程序运行期间都存在。模块级变量可以被模块中的所有过程使用,但不能被其他模块使用。可以在模块顶部的声明段中用Private关键字声明模块级变量。在模块级,用Private和用Dim没有什么区别,但用Private更好些,这是因为很容易将其与Public区别开来,使代码更容易理解。为了使模块级的变量能够被其他模块使用,要用Public关键字来声明全局变量。全局变量中的值可用于应用程序的所有过程。全局变量也在模块顶部的声明段声明。变量作用范围及其声明方式作用范围局部
14、变量模块级变量公共变量声明方式Dim,StaticDim,PrivatePublic变量的声明位置过程之中模块的声明段中模块的声明段中能否被本模块中的其他过程访问否能能能否被其他模块访问否否能运算在VB中,可以进行4种类型的运算,即:算术运算连接运算关系运算逻辑运算4算术运算算术运算包括加(+)、减()、乘(*)、除(/)、整除(,如72等于3)、取余(Mod,如7Mod2等于1)、指数()和一元减(数值取反,如(6)等于6)。连接运算连接运算是将两个字符表达式连接起来,生成一个新字符串。连接运算符有两个。即+和&。使用&运算符时,参与连接的两个表达式可以不全是字符串,即&运算符可强制性地将两
15、个表达式做字符串连接。如:intNum=22strTemp=学号是&intNum使用+运算符时,操作数必须是字符串,否则,则产生错误。如:intNum=22strTemp=学号是+intNum关系运算关系运算用来比较两个表达式的大小,包括大于()、大于等于()、小于(、小于等于()、等于()和不等于(。关系运算的结果是逻辑值True或False。逻辑运算逻辑运算也称为布尔运算,专门用于逻辑值之间的运算。运算符运算符含义含义举例举例结果结果说明说明Not逻辑非逻辑非Not(82)False8大于大于2为真,取反后为假。为真,取反后为假。And逻辑与逻辑与(8 2)And(93)True两个表达式
16、都为真时才为真。两个表达式都为真时才为真。Or逻辑或逻辑或(83)Or(95True两个表达式有一个为真即为真。两个表达式有一个为真即为真。Xor异或异或(95)Xor(216)False两两个个表表达达式式有有一一个个且且只只有有一一个个为真时才为真。为真时才为真。Eqv逻辑逻辑等于等于(63)Eqv(85)True仅当两个表达式相同时才为真。仅当两个表达式相同时才为真。Imp逻辑逻辑蕴含蕴含(9 6 Imp(98)False仅仅当当第第一一个个表表达达式式为为真真时时才才为为真。真。内部控件内部控件是VB本身提供的,总是出现在工具箱中,而且不能删除。在VisualBasic6.0中共有20
17、个内部控件。1文本框文本框(TextBox)用于在运行时输入和输出文本。它有如下属性:Text属性,在文本框中显示的文本,可以在属性窗口中设置,也可以在运行时通过代码设置,或运行时由用户输入。运行时通过访问Text属性,可以获取文本框中的当前内容。MultiLine属性,MultiLine属性默认是False,表示是单行文本框。单行文本框最多只能接受2048个字符。如果将MultiLine属性设为True,那么文本框是多行文本框。多行文本框可以接受多达32K的文本。当多行文本框没有水平方向的滚动条时,文本框中的文本会自动换行。ScrollBars属性,ScrollBars属性的默认值是0,表示
18、没有滚动条。设为1时,文本框含水平滚动条;设为2时,文本框含垂直滚动条;设为3时,文本框含水平和垂直滚动条。ScrollBars属性设置只对多行文本框起作用,单行文本框没有滚动条。PasswordChar属性,PasswordChar属性设置为某一字符,则在文本框中输入字符时,不显示字符本身,只显示设置的字符。常用于密码输入。标签标签(Label)控件通常用来标注本身不具有Caption属性的控件。例如,可用标签控件为文本框、列表框、组合框等控件添加描述性的文本,也可以为窗体添加说明文字,向用户提供帮助信息。可以通过代码改变标签控件显示的文本内容以响应运行时的事件。命令按钮命令按钮(Comma
19、ndButton)用来启动、中断或结束一个进程。可用Caption属性改变命令按钮上显示的文本。单击命令按钮将触发Click事件以及MouseDown和MouseUp事件,这三个事件的顺序是:MouseDown、Click、MouseUp。如果要对这些事件附加事件过程,则应确保操作不发生冲突。复选框和单选按钮复选框(CheckBox)控件和单选按钮(OptionButtton)控件都是提供用户进行选择。它们之间的区别在于用户在一组复选框中可以选择多个,而在一组单选按钮中只能选择一个。复选框的Value属性默认值是0,表示未选中;属性值为1,表示选中;如果为2,则复选框不可用。单选按钮的Valu
20、e属性在选中时为True,未选中时为False。当Enabled属性设成False时,将使单选按钮处于禁止状态,即不能响应用户的选择。框架框架(Frame)控件用于对控件进行分组。对同一组的单选按钮,一次只能选中一个,但不同组的单选按钮可以同时选中。列表框和组合框列表框(ListBox)控件显示选择项列表,用户可以从中选择一个或多个项目。利用ListCount属性可以获得列表框中的项目数。列表框中的每个项目可以通过ListIndex属性值来访问,第一项是0,最后一项是n1,n是项目总数。如果未选定项目,ListIndex属性值为-1。使用AddItem或RemoveItem方法可以增加或删除L
21、istBox控件中的项目。语法是:ListBox1.AddItemitem,indexItem是添加到列表框中的项目;index指定项目插入的位置,设为0,表示第一个位置,如果省略,则插在末尾。如果项目总数超过可显示的项目数,则自动在列表框控件上添加滚动条。组合框(ComboBox)是将文本框与列表框的功能结合在一起。组合框有三种样式,可以用Style属性来设置组合框的样式。默认时,Style属性为0,组合框为下拉组合框;Style属性为1,组合框为简单组合框;Style属性为2,组合框为下拉列表框。当组合框为下拉组合框或下拉列表框时,程序在运行时只显示文本框,点击文本框右侧的向下箭头将打开列
22、表框。在列表框中选择某个项目后,该项目显示在文本框中。它们的区别在于下拉组合框允许用户在文本框中输入不在列表中的项目,而下拉列表框不能在文本框中输入不在列表中的项目。当组合框为简单列表框时,程序在运行显示文本框和列表框,用户可以从列表中选择项目显示在文本框中,也可以直接在文本框中输入不在列表中的项目。滚动条控件滚动条控件分水平滚动条(HScrollBar)和垂直滚动条(VScrollBar)两种。除方向之外,两者的作用是相同的,都是用于滚动内容。当应用程序或控件不能自动支持滚动时,可以利用滚动条控件来提供滚动功能。滚动条的Min属性设置水平滚动条最左侧或垂直滚动条最顶端时的值,Max属性设置水
23、平滚动条最右侧或垂直滚动条最底端时的值,取值范围在-3276832767之间。滚动条的Value属性对应于滚动框在滚动条中的位置,它介于Max和Min属性值之间。定时器在程序中利用定时器(Timer)控件可以有规律地隔一段时间执行一次代码,常用于动画等,运行时,定时器不可见。定时器支持Timer事件。Timer事件过程中的代码是按一定的时间间隔重复执行的。时间间隔由Interval属性设置,以毫秒(千分之一秒)为单位,取值介于064767之间。定时器的另一重要属性是Enabled属性。默认时,Enabled属性值是True,表示一加载窗体,定时器就开始工作。如果将Enabled属性值是Fals
24、e,那么将使定时器暂停工作。PrivateSubForm_Load()Timer1.Interval=10Label1.Left=0EndSubPrivateSubTimer1_Timer()Label1.Left=Label1.Left+20IfLabel1.Left=Form1.WidthThenLabel1.Left=0EndIfEndSub下面的程序显示一个标题(Label)随时间不断向右移动。文件系统控件许多应用程序需要显示关于磁盘驱动器、目录和文件的信息。为使用户能够利用文件系统,VB提供了两种选择。可以使用由CommonDialog控件(ActiveX控件)提供的标准对话框,或使
25、用DriveListBox、DirListBox和FileListBox这三种特殊的控件组合创建自定义对话框。DriveListBox用来显示用户系统中所有有效磁盘驱动器的列表,其Drive属性是列表框中选中的磁盘驱动器。DirListBox用来显示目录和路径,其Path属性是选中文件夹的路径。FileListBox用来选择文件,通过设定Path属性来显示该某一路径下的所有文件。PrivateSubDrive1_Change()Dir1.Path=Drive1.DriveEndSubPrivateSubDir1_Change()File1.Path=Dir1.PathEndSub图形控件图形控
26、件包括图片框(PictureBox)与图像框(Image)。两者都可用来显示图形,而且支持相同的图形格式。但图片框包含了图像不具有的功能,即图片框可以作为其他控件的容器,并支持图形方法和Print方法。图片框与图像框支持的格式包括bmp、dib、ico、cur、wmf、emf、jpg和gif等。将图形加载到图片框可通过设置Picture属性或调用LoadPicture函数来实现。默认时,加载到图片框中的图形保持原始大小,如果图形比图片框大,那么超出部分将被裁剪掉,这是因为图片框不支持滚动条。要使图片框能够自动调整大小来显示完整的图形,应将其AutoSize属性设为True,这样控件将自动调整大
27、小来适应加载的图形。将图形加载到图像中的方法与图片框一样,但图像框有一个重要属性,即Stretch属性。默认时,Stretch属性值是False,图形按原始大小显示,系统会自动调整图像框的大小来适应图形大小。如果设为True,则自动调整图形的大小来适应图像框。形状控件和直线控件形状(Shape)控件和直线(Line)控件都是用来美化窗体设计。形状控件提供的图形有6种:矩形、正方形、椭圆形、圆形、圆角矩形和圆角正方形,可以通过Style属性来定义。另外,还可以通过FillStyle、FillColor、BorderStyle等属性定义图形的显示形式。直线控件也可以通过相关的属性值来定义显示形式。
28、数据控件数据(Data)控件用于对存储在数据库中的数据进行访问。数据控件中的Connect属性用于定义连接的数据库类型;Database属性用于连接某个数据库;RecordSource属性用于指定数据库中的数据表。其他控件,如文本框可以和数据控件进行绑定(通过DataSource属性),并指定要显示的数据字段(通过DataField)。这样,绑定控件会自动显示出数据库当前记录的字段值。ActiveX控件ActiveX控件以前称OLE控件,是VB内部控件的扩充。ActiveX控件总是存放在控件部件(扩展名为.OCX的文件)中,每个控件部件可以包含一个或多个控件。运行包含ActiveX控件的应用程
29、序时,必须在系统中安装并注册与其相关的.ocx文件,否则程序就找不到创建该控件的代码,就会产生错误。2安装VB时会自动将本身提供的ActiveX控件安装在WindowsSystem或System32文件夹中。此外,用户还可创建自己的ActiveX控件,也可使用第三方软件开发商提供的ActiveX控件。在工具箱中增加ActiveX控件的方法是右键单击工具箱并从弹出菜单中选择Components命令,也可以打开Project菜单并选择Components命令,两者都打开Components对话框,选取组件名前面的复选框,选择组件并单击OK按钮。常用的ActiveX控件有:MicrosoftWind
30、owsCommonControls6.0,它 包 括 了 TabStrip、Toolbar、StatusBar、ProgressBar、TreeView、ListView、ImageList、Slider、ImageCombo等控件。Microsoft Common Dialog Control 6.0,有CommonDialog控件。Microsoft Tabbed Dialog Control 6.0,有TabbedDialog控件。菜单菜单编辑器编写菜单项代码使菜单命令有效或无效1菜单编辑器在VB中有一个很好的工具来帮助用户创建自己的菜单系统,这个工具就是菜单编辑器。选择“工具”菜单下的
31、“菜单编辑器”命令,将显示菜单编辑器对话框。菜单编辑器大致可分为三个区域。上部是属性设置区,用于设置菜单的属性。菜单编辑器的下部是菜单列表框,列出了当前窗体的所有菜单。菜单编辑器的中间是几个按钮,用于对菜单进行编辑。菜单在列表框中的位置决定了该菜单是菜单标题、子菜单标题、菜单项。列表框中未缩进过的菜单,将作为菜单标题出现在菜单栏中。菜单标题下缩进的菜单,如果后面还有再次缩进的菜单,将作为一个子菜单的标题。菜单标题(或子菜单标题)下缩进的菜单,如果后面没有再次缩进菜单,作为菜单项。以连字符(-)作为标题的菜单,将作为分割条出现。分割条可以把子菜单和菜单项划分成若干个逻辑组。在VB中,每个菜单最多
32、包含5级子菜单。编写菜单项代码程序运行时,如果点击某一个菜单项,将触发该菜单项的Click事件。必须在代码中为每个菜单项编写Click事件过程代码。DimfnAsStringCommonDialog1.ShowOpenfn=CommonDialog1.FileNameImage1.Picture=LoadPicture(fn)使菜单命令有效或无效每个菜单项都有Enabled属性,当这个属性设为False时,菜单项将无效,即点击时不能响应。无效的菜单项以浅灰色显示。Image1.Picture=LoadPicture()Delete.Enabled=False工具栏工具栏由多个按钮组成。运行时,
33、单击工具栏中的按钮,就可以快速执行常用的操作。在VB中,可用Toolbar控件来创建工具栏。2Toolbar控件Toolbar控件用来创建工具栏。Toolbar控件有一个重要属性就是Buttons属性,该属性是指向Button对象的集合。通过将Button对象添加到Buttons集合中,就可以创建工具栏。还可以将其他控件(如文本框或组合框等)加入到Toolbar控件。Button对象的属性包括Index(索引)、key(关键字)、Caption(标题)、Image(图像)、ToolTipText(工具提示)、Style(样式)等。不同Style属性的按钮特点常数常数值值含义含义tbrDefau
34、lt0默认按钮样式,按钮按下完成功能后自动弹回。默认按钮样式,按钮按下完成功能后自动弹回。tbrCheck1开开关关按按钮钮样样式式,按按下下后后将将保保持持按按下下状状态态,除除非非再再次次单单击。击。tbrButtonGroup2同一组的按钮,同时只有一个按钮可以按下。同一组的按钮,同时只有一个按钮可以按下。thrSeparator3分割符。分割符。tbrPlaceholder4占位符按钮,用于显示其他控件。占位符按钮,用于显示其他控件。tbrDropDown5按钮菜单。按钮菜单。创建工具栏的基本步骤如下:利用Toolbar控件在窗体上创建一个工具条,在工具条上右击鼠标打开属性页。点击“按
35、钮”Tab键,进入按钮属性页面,点击“插入按钮”可以在工具条上增加按钮。每个按钮可有图像、标题和提示。如要显示图像,则要利用ImageList控件。创建ImageList控件来保存要使用的图像;将Toolbar控件与ImageList控件相关联;每一个Button对象与ImageList中的图像相关联。编写ButtonClick事件过程运行时,单击工具栏中的按钮(占位符和分割符除外),将触发ButtonClick事件。编写响应ButtonClick事件的代码时,要用Button对象的Index属性或Key属性来标识被单击的是哪一个按钮。PrivateSubToolbar1_ButtonClickSelectCaseButton.KeyCaseNewFileNewProc调用新建文件过程CaseOpenFileOpenProc调用打开文件过程CasePrintFilePrintProc调用文件打印过程EndSelectEndSub