首页 初级VB教程资料

初级VB教程资料

举报
开通vip

初级VB教程资料初级VB教程资料 VB编程基础 程序设计语言 计算机的工作原理——“存储程序”(存储程序和程序控制) 计算机只能执行预先由程序安排它去做的事情 要利用计算机来解决问题,就必须采用程序设计语言来编制程序 程序设计语言大致有三类:机器语言,汇编语言,高级语言 VB概述 VB的发展过程 Windows的产生,推动了Windows应用程序的开发 基本BASIC ? 结构化BASIC ? 可视化BASIC ? 网络化 BASIC(VB.NET) VB的特点 面向对象的可视化编程 ...

初级VB教程资料
初级VB教程资料 VB编程基础 程序设计语言 计算机的工作原理——“存储程序”(存储程序和程序控制) 计算机只能执行预先由程序安排它去做的事情 要利用计算机来解决问题,就必须采用程序设计语言来编制程序 程序设计语言大致有三类:机器语言,汇编语言,高级语言 VB概述 VB的发展过程 Windows的产生,推动了Windows应用程序的开发 基本BASIC ? 结构化BASIC ? 可视化BASIC ? 网络化 BASIC(VB.NET) VB的特点 面向对象的可视化编程 把程序和数据“封装”起来成为一个对象;每个对象都是可视的 从VB工具箱中选用控件(即现成部件,如文本框、命令按钮等),构 成应用程序的用户界面 事件驱动的编程机制 传统的程序设计语言面向过程,VB语言面向对象 通过事件来触发执行相应的事件过程(“事件驱动“) ,从而执行对象 的操作和达到运算、处理的目的。 结构化的设计语言 友好的VB集成开发环境 VB的启动和关闭 启动VB 按运行一般应用程序的方法来启动它。 创建一个默认的“ 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 EXE”类型的VB应用程序 “新建 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 ”对话框 VB集成开发环境 退出VB VB应用程序设计初步 设计VB应用程序的步骤 大致分为两大部分工作:设计用户界面和编写程序代码 用户界面(用户使用计算机的综合操作环境) 先要确定对象,然后针对这些对象进行代码编程 最常用的对象是窗体(即窗口),各种控件对象必须建立在窗体上。 用户界面设计又包括建立对象和对象属性设置两部分。 设计VB应用程序的大致步骤如下: (1)建立用户界面的对象; (2)设置对象的属性值; (3)编写程序代码,建立事件过程; (4)保存和运行应用程序 第一个简单程序 例1.1 在运行中当用鼠标单击窗体时,窗体上显示出“欢迎您来到VB世界! ” 设计步骤如下: 1. 创建窗体 在系统默认提供的窗体上输出若干文字,不必专门设计用户界面。 2. 编写程序代码,建立事件过程 代码窗口:进入;选择了对象和事件;编写程序代码 事件过程名,由两部分组成:对象名和事件名 3. 保存工程 保存窗体文件(.frm)和工程文件(.vbp) 4. 运行程序 执行“启动”命令,即用解释方式运行程序 执行“结束”命令,即可结束程序的运行 窗体显示情况 第二个简单程序 例1.2 设计一个应用程序,由用户输入正方形的边长,计算并输出正方形的面积 分析:要创建的应用程序用户界面(图3) 窗体上含有两个标签、两个文本框和两个命令按钮 两个标签分别用于显示文字“边长”和“面积” 两个文本框用于输入数据和显示计算结果 程序功能要求: 运行时,用户在“边长”文本框中输入某一个数,当单击“计算”按钮时,则在“面 积”文本框中显示该数的平方数。单击“结束”按钮,则结束程序的运行。 设计步骤 1. 创建窗体 在默认窗体Form1上添加控件,以构建用户界面 2. 在窗体上添加界面的控件 设置控件的方法 在Form1窗体上添加以下控件: 标签Label1:用于显示文字“边长”; 标签Label2:用于显示文字“面积”。 文本框Text1:用于边长数; 文本框Text2:用于显示计算结果(平方数)。 命令按钮Command1:用于计算输入数的平方,并把 结果显示在文本框Text2中; 命令按钮Command2:用于结束应用程序的运行。 设置对象属性 在“属性窗口”中进行设置以下对象的属性: (1)设置窗体Form1的Caption(标题名)属性为“计算正方形的面 积 ”。 (2)设置标签Label1的Caption属性为“边长”。 (3)设置标签Label2的Caption属性为“面积”。 (4)设置文本框Text1的Text(文本内容)属性为空。 (5)设置文本框Text2的Text属性为空。 (6)设置按钮Command1 的Caption属性为“计算”。 (7)设置按钮Command2 的Caption属性为“结束”。 (8)其他属性采用默认值。 编写程序代码,建立事件过程 例1.2的程序代码(图4) 程序说明:Dim语句;数据类型Single(单精度);Val函数;语句 “Text2.Text=x*x”的作用 保存工程 保存窗体文件和工程文件 运行程序 单击工具栏上的“启动”按钮,即可采用解释方式来运行程序。 运行后,在“边长”文本框中输入某一个数(如23),单击“计算”按钮时, 系统会启动事件过程Command1_Click,则取数和运算,最后把计 算结果显示在“面积”文本框(Text2)中。 单击“结束”按钮,可以启动事件过程Command2_Click,则执行End 语句来结束程序的运行。 运行效果 对象和事件的基本概念 对象及其属性、方法和类 1. 对象 对象是VB系统中的基本运行实体,如窗体(Form)、标签(Label)、文本框(TextBox)、命令按钮(CommandButton)等。 对象是一组程序代码和数据的集合。 2. 容器对象 其他对象的载体或容器。如窗体 3. 属性 对象的特征。不同的对象有不同的属性。 每一个对象都有一组特定的属性。例如文本框的属性有Name(名称)、Text(文本内容)、Maxlength(最大字符数)、Multiline(多行)等。属性默认值 设置对象属性的常用两种方法 • (1) 在属性窗口中设置 • (2) 在程序运行中更改对象的属性(动态修改) ,对象名.,属性名=属性值 • 示例: Label1.Caption= "输入数" ?设置标签的标题 4.方法 方法是对象能够执行的动作。它是对象本身内含的函数或过程,用 于完成某种特定的功能 一般格式:,对象名.,方法名,(参数), 示例:Form1.Cls ?消除窗体Form1上的 内容 Print "Visual BASIC" ?在当前窗体上显示 5. 类 一组用来定义对象的相关属性和数据的集合 类是创建对象的模型,对象则是按模型生产出来的成品 事件、事件过程及事件驱动 1. 事件 由系统预先设置好的、能被对象识别的动作。 例如:鼠标的移动(MouseMove)、单击(Click)和双击(Dblclick),窗体的装载 (Load)等。 每一种对象能识别的事件是不同的 程序中一般只用到几个常用的事件(与操作要求有关) 2. 事件过程 事件过程的语法格式如下 Sub 对象名_事件名() 处理事件的程序代码 End Sub 示例 命令按钮Command1的单击(Click)事件过程为: Private Sub Command1_Click() Forml.Caption = "在窗体上画圆“ ?以圆心(2400,1500), 半径为800画圆 Forml.Circle (2400,1500),800 End Sub 3. 事件驱动 当某个事件(一般由用户操作来引发) 发生时,系统就会自动执行此事件的 事件过程 由事件控制整个程序的执行流程 事件过程要经过事件的触发才能被执行,这种工作模式称为事件驱动方式 VB的集成开发环境 集VB程序的设计、编辑、编译和调试于一体,集中提供程序开发所需要的各种工具、窗口和方法 主窗口 由标题栏、菜单栏和工具栏组成 VB工作状态(模式):设计、运行和中断(Break) 工具箱和控件 VB工具箱中包含了各种VB标准控件。包含一个指针和20个标准控件 控件就像盖房子使用的门、窗、砖瓦等,都是现成部件,只要到现场组合就 可以了。 1. 在窗体上添加一个控件 2. 控件的缩放、移动、复制和删除 3. 选定多个控件 4. 控件的布局 其他窗口 1. 窗体编辑器窗口 设计应用程序的界面。设计窗体的外观,添加控件、图形,移动控件、改变大小等。 2. 工程资源管理器窗口 管理工程中的窗体和各种模块 以层次结构方式列出了当前工程中的所有文件 三个按钮:“查看代码”,“查看对象”,“切换文件夹” 3. 属性窗口 用于列出所选定窗体或控件的属性设置值,并允许用户设置或修改 这些属性值将作为程序运行时各对象属性的初始值 (1) 对象列表框 (2) 排序方式选项卡 (3) 属性列表框 (4) 属性解释区 4. 代码窗口 用来编辑程序代码 5. 窗体布局窗口 显示窗体在屏幕中的位置。调整窗体的位置 工程的管理 VB是通过工程(Project,也称为项目)来管理应用程序中的所有不同文件的。 工程中的文件(常用) 工程文件 .vbp 窗体文件 .frm 标准模块文件 .bas 创建、打开和保存工程 创建工程 ;打开工程;保存工程;关闭工程 添加、删除和保存文件 添加文件 、删除文件和保存文件 生成可执行文件 两种运行程序的方式:解释方式;编译方式 执行“文件”菜单中的“生成....exe”命令 本章小结 演示: (1) 将例1.2的应用程序“编译”成可执行文件,然后进入Windows环境,直 接运行该程序文件 (2) 分别采用解释方式和编译方式运行“时钟”程序 VB语言基础 标识符 标识符是程序员为变量、常量、数据类型、过程、函数、类等定义的名字。 VB中标识符的命名规则如下: 标识符必须以字母开头,后跟字母、数字或下划线。 标识符的长度不能超过255个字符。 自定义的标识符不能和VB中的运算符、语句、函数和过程名等关键字同名, 同时也不能与系统已有的方法和属性同名。 关键字是VB保留下来的作为程序中有固定含义的标识符,不能被重新定 义。 运算符 运算符是代表VB某种运算功能的符号。VB程序会按运算符的含义和运算规则执 行实际的运算操作。 VB中的赋值运算符是“=” VB中的关系运算符 VB中的数学运算符 运算符 说明 , 运算符 说明 = 相等运算符 , ^ 指数运算符 <> 不等运算符 , - 负号运算符 > 大于运算符 , * / 乘法和除法运算符 < 小于运算符 , \ 整除运算符 >= 大于或等于运算符 , Mod 求模运算符 <= 小于或等于运算符 , + - 加法和减法运算符 续表 , & 连接字符串运算符 运算符 说明 Like 字符串模式匹配运算符 VB中的逻辑运算符 Is 对象一致比较运算符 运算符 说明 Not 取反运算符(运算数为假时, 结果为真,反之结果 为假) And 与运算符(运算数均为真时,结 果才为真) Or 或运算符(运算数中有一个为真 时,结果为真) Xor 异或运算符(运算数相反时,结 果才为真) Eqv 等价运算符(运算数相同时才为 真,其余结果均为假) Imp 蕴含运算符(第一个运算数为 真,第二个运算数为假时, 结果 才为真,其余结果均为假) 书写规则 VB代码中不区分字母的大小写 语句书写自由 在同一行上可以书写多条语句,语句间用“:”号分隔。 单行语句可分若干行书写,在本行后加上续行符“ _”(由一个空字符和一个 下划线字符组成)。 一行最多允许255个字符。 注释有利于程序的维护和调试 注释以Rem开头,也可以以“'”引导注释内容。 常量、变量及数据类型 与一般程序设计语言一样,VB中使用常量和变量来存储各种类型的数据。 常量用名字来表示某个数值,将无意义的单纯数字用有含义的符号来表示, 方便用户使用。 变量用名字来表示其中存储的数据,用数据类型表示其中存储的数据的具体 类型。还可以使用一种特殊的变量数组来表示一系列相关的变量。 数据类型用来限制不同的数据存储时占据的空间的大小。 常量 字符串常量是用双引号括起来的一串字符。 数值常量共有5种表示方式:整数、长整数、定点数、浮点数和字节数。 布尔常量只有True(真)和False(假)两个值。 日期常量使用两个“#”符号把表示日期和时间的值括起来。 符号常量又分为两种:系统内部定义常量和用户定义常量。 变量 声明变量 ,可被声明为在不同范围内使用 普通局部变量:Dim 变量名 [As 数据类型名] 静态局部变量:Static 变量名 [As 数据类型名] 模块变量:Private 变量名 [As 数据类型名] 全局变量:Public 变量名 [As 数据类型名] 变量赋值, 变量名 = 表达式 引用变量,在需要使用变量中的值时,必须引用变量的名字来取出其中存放的数值。 数据类型 一般情况下,对于固定类型的变量,都要指明其数据类型。在VB中,允许使用的有如下几种数据类型: 数值数据类型 :用于表示某种数值类的数据 。 Integer(整型)、Long(长整型)、Single(单精度浮点型)、Double (双精度浮点型)和Currency(货币型) 字节数据类型 :用于表示并存储二进制数据。 字符数据类型 :用于表示一个由很多字符组成的字符串。 布尔数据类型 :用于表示只有两种相反取值的数据。 日期数据类型 :用于保存日期和时间,赋值时用两个“#”符号把表示日期和 时间的值括起来。 可变数据类型 :能够存储所有系统定义类型的数据。 对象(Object)数据类型 :用来引用应用程序中或某些其他应用程序中的对 象。 数 组 除了一般的变量,在VB中还允许使用数组来表示一系列相关变量的集合。 数组内的元素是连续存放的,而且有上、下两个边界限制数组内元素的个数和数组的起始位置及结束位置。 一般情况下,一个数组中的元素类型必须相同,可以是前面讲过的各种基本 类型。 特殊的是当数组类型指定为Variant时,其中元素的类型可以为各种基本类 型的混合。 数组可以是一维的,也可以是多维的。 数组的种类: 固定数组,该数组的大小始终保持不变 动态数组,该数组的大小在程序运行过程中可以改变 固定数组 声明固定大小的数组 声明一个固定数组变量时,必须给定一个数组使用的有效范围。 设定上下界 声明数组时,在数组名后跟一个用括号括起来的上界(默认下界为0),上 界不超过Long数据类型的范围。声明格式如下: [Private|Public] 数组名(数组长度-1)As 数组中元素类型 例如:声明一个元素为整型、长度为7的局部数组A,可以使用如下语句声 明: Private A(6)As Integer 可以用关键字To显式提供下界。例如:声明一个元素为整型、长度为7, 索引值范围从1,7的局部数组A。 Private A(1 To 7) As Integer 包含其他数组的数组 ,可以建立Variant数据类型数组,并与不同数据类型的数组共同使用。 多维数组 例如,以下的语句声明一个10×10的二维数组: Dim Matrix(9,9) as Double 可用显式下界来声明两个维数或两个维数中的任何一个: Dim Matrix(1 To 9,1 To 9) as Double 动态数组 在事先不知道数组的大小时,可以声明该数组为动态数组,在程序中需要时再指定数组的大小。 创建动态数组的步骤为: 声明数组为动态数组,只需给数组附以一个空维数表。 Dim MatrixX() 在需要指定数组大小时,再使用ReDim语句分配数组中实际元素的个数。 ReDim 数组名(数组长度-1) 在重定义数组时,一般都会清除原来的元素,如果带Preserve关键词,则 不清除原来的元素。 ReDim Preserve MatrixX(15) 顺 序 结 构 赋值语句 它是最简单的顺序结构,其使用语法如下: [Let] 变量=表达式 其中,关键字Let为可选项,通常都省略该关键字。 Print方法 Print方法用于在窗体、立即窗口、图片框、打印机等对象中显示文本字符 串和表达式的值。 语法如下: [对象表达式.]Print[表达式表][,|;] 一般情况下,每一次Print方法要自动换行,即后面执行Print时将在新的 一行上显示信息。为了仍在同一行上显示,可以在Print方法末尾加上分号 或逗号。 为了使数据按指定的位置输出,VB提供了几个与Print配合使用的函数。 Tab函数与Print方法或Print#语句一起使用,对输出进行定位。 Print Tab(10); “姓名”;Tab(30);“年龄” 在Print方法或Print#语句中,用Spc函数跳过n个空格 。 Print "ABC";Spc(5); "DEP" '输出:ABC DFE Spc函数与Tab函数的作用类似,可以互相代替。但应注意,Tab 函数从对象的左端开始计数,而Spc函数只表示两个输出项之间的 间隔。 注释语句Rem 注释语句用来在程序中包含注释。其使用语法如下: Rem| „ 注释内容 在Rem关键字与注释内容之间要加一个空格。 如果在其他语句行后使用Rem关键字,则必须使用冒号“:”与语句隔开。 可以用一个单引号“„”来代替Rem关键字。若使用单引号,则在其他语句行 使用时不必加冒号。 注释语言可以单独占有一行,也可以放在语句的后面。 End语句 End停止执行过程或块。可以在过程中的任何位置关闭代码执行。 在执行时,End语句会重置所有模块级别变量和所有模块的静态局部变量。 若要保留这些变量的值,改为使用Stop语句,则可以在保留这些变量值的 基础上恢复执行。 End语句提供了一种强迫中止程序的方法。 选 择 结 构 VB中的选择结构语句分为If语句和Select Case语句两种。 If语句又分为单行格式和多行格式。 单行格式If语句 If 条件 Then 语句1 [Else 语句2] 编写一个函数求两个数中最大数。 Private Function MaxValue1(a As Integer,b As Integer) As Integer If a > b Then MaxValue1 = a Else MaxValue1 = b End Function 多行格式If语句 格式一 格式二 格式三 Select Case 表达式 Case 表达式结果表1 语句体1 [Case 表达式结果表2 Select Case语句 语句体2] 在这种结构中,只有一个 … … 用于判断的表达式,根据此 [Case Else 表达式的不同计算结果, 语句体n] 执行不同的语句体部分。 End Select Select Case语句的一般格式为: Select Case语句一般格式中的表达式结果表列可以有如下四种格 式,即允许出现四种Case形式: • 表达式结果 • 表达式结果1[,表达式结果2]……[,表达式结果n] • 表达式结果1 To 表达式结果2 • Is 关系运算符 数值或字符串 循 环 结 构 循环结构可以分为For循环、While循环和Do循环语句结构。 For循环:属于计数型循环,程序按照此种结构中指明的循环次数来执行循环体部分。 For循环格式如下: 除了上述For循环外,还有一个集合For循环语句,其使用语法如 下: • 该语句对集合中的每个元素进行一次循环,直到集合中无更 多的元素时,执行Next后面的语句。 • While循环用于对条件进行判断,如果条件成立,可以循环执行循环体,直到成立,条件不循环结束为止。 • While循环的格式如下: • 此种循环允许嵌套,可以嵌套多层,每个用于表示结束的Wend均 与最近的一个While配对。 • 求1,n(正整数)的所有正整数之和的函数 Do循环 Do循环 与While循环不同的是:While循环只能在初始位置检查条件是否 成立,若成立,进入循环体;不成立,不进入循环体,执行循环体 后的语句。 而Do循环可以有两种格式,既可以在初始位置检验条件是否成立, 也可以在执行一遍循环体后的结束位置判断条件是否成立,能否进 入下一次循环。 • 格式一 • 格式二 中途跳出语句 在VB中,有如下几种中途跳出语句: Exit For:用于中途跳出For循环,可以直接使用,也可以用条件判断语句 加以限制,在满足某个条件时才能执行此语句,跳出For循环。例如:在 For循环内部添加语句“If 条件 Then Exit For”。 Exit Do:用于中途跳出Do循环,同上类似,既可以直接使用,也可以用条 件判断语句限制使用。 Exit Sub:用于中途跳出Sub过程,既可以直接使用,也可以用条件判断语 句限制使用。 Exit Function:用于中途跳出Function过程,可以直接使用,也可以用条 件判断语句限制使用。 使用上述几种中途跳出语句,可以为某些循环体或过程设置明显的出口,能够增强程序的可读性。 过 程 将程序分割成较小的逻辑部件可以简化程序设计任务,这些部件称为过程,它们可以变成增强和扩展VB的构件。 子过程 :子过程(Sub过程)是在响应事件时执行的代码块。 子过程的语法如下: 过程的参数表类似于变量声明,它声明了从调用过程传递进来的值。 子过程分为:通用过程和事件过程这两类。 通用过程 通用过程 :通用过程告诉应用程序如何完成一项指定的任务。一旦 确定了通用过程,就必须由应用程序来调用。 • 建立通用过程是为了让事件过程来调用它,这样就不必重复 编写代码。 • 上图说明了通用代码的使用,三个Click事件中的代码都调 用Gen()子过程,子过程运行自身的代码,然后将控制返回 到Click事件过程。 事件过程 当VB中的对象对一个事件的发生作出标识时,便自动用相应于事 件的名称调用该事件的过程。事件过程通常总是处于空闲状态。 因为名称在对象和代码之间建立了联系,所以说事件过程是附加在 窗体和控件上。 • 事件过程的语法如下: • 虽然可以自已编写事件过程,但使用VB提供的代码过程会 更方便,这个过程自动将正确的过程名包括进来。从“对象 框”中选择一个对象,从“过程框”中选择一个过程,就可在 “代码编辑器”窗口选择一个模板。 函数过程 VB包含内部函数,如Sqr、Sin和Chr。此外,还可用Function语句编写自已的函数(Function)过程。 函数过程的语法是: 与Sub过程一样,Function过程也是一个独立的过程,可读取参数、执行 一系列语句并改变其参数的值。与子过程不同的是,Function过程可返回 一个值到调用的过程。 下面是已知一个三角形的三条边长,计算其面积的函数: 在窗体中有4个文本框,前3个分别用于输入三角形三边长的值,第4个文 本框用于显示面积,则在“计算”命令按钮上设计以下事件过程调用上面的函 数过程Area: 向过程传递参数 过程中的代码通常需要某些有关程序执行状态的信息才能完成它的工作。信息包括在调用过程时传递到过程内的变量。当将变量传递到过程时,称变量为参数。 按值传递参数 :传递的只是变量的副本。如果过程改变了这个值,则所作 变动只影响副本而不会影响变量本身。使用ByVal关键字指出参数是按值来 传递的。 按地址传递参数:使过程用变量的内存地址去访问实际变量的内容。结果将 变量传递给过程时,通过过程可永久改变变量值。在VB中参数传递默认是 按地址传递的。 或 VB中的常用函数 输入函数InputBox 数值型数据:此时函数返回的是一个数值型数据。只能输入数值不能输入字 符串。 InputBox(prompt[,title][,default][,xpos,ypos][,helpfile,context]) 字符串型数据:此时函数返回的是一个字符串型数据。可以输入数值也可以 输入字符串。 InputBox$(prompt[,title][,default][,xpos,ypos][,helpfile,context]) 例如: 输出函数MsgBox ,可以用对话框的形式向用户输出一些必要信息,还可以让用户在对话框内进行相应的选择,然后将该选择结果传输给程序。 MsgBox函数使用格式为: MsgBox(prompt[,buttons][,title][,helpfile,context]) 例 MsgBox “欢迎你来到VB世界”,vbOK+vbInformation, “ 提示 春节期间物业温馨提示小区春节期间温馨提示物业小区春节温馨提示春节物业温馨提示物业春节期间温馨提示 信息” 其他函数 Chr()函数:用于将ASCII数值转为相应的字符形式,返回值为字符串型。 Val()函数:用于将数值字符串转为数值,返回值为数值型。 Ucase()函数:用于将某个字符串中的所有小写字母转为大写字母 Lcase()函数:用于将某个字符串中的所有大写字母转为小写字母 Mid()函数:用于从某个字符串中取出其中的一部分,可以指定从哪个位置 开始取和取几个字符。将取出部分作为一个新的字符串返回。此函数的格式 为: Mid(string, start[,length]) Format()函数:用于格式化输出。此函数的格式为: Format[$](expr,outformat) VB内部控件 标 签 标签是VB中最简单的控件,用于显示字符串,通常显示的是文字说明信息。但不能编辑标签控件。 常用属性 :Alignment属性 、AutoSize属性 、BackStyle属性 、BorderStyle 属性 、Caption属性 、WordWrap属性 、 常用方法 :常用的只有Move ,其基本语法如下: Move left,top,width,height 其中left,top,width,height分别表示移动目的位置的坐标和大小。left 为必要参数,其他三个为可选参数。 文 本 框 文本框可以供用户输入数据,是VB中显示和输入文本的主要机制,也是Windows用户界面中最常用的控件。 文本框是个相当灵活的输入工具,可以输入单行文本,也可以输入多行文本,还具有根据控件的大小自动换行以及添加基本格式的功能 常用属性 :Text 、MaxLength 、MultiLine、PasswordChar 、ScrollBars 、 SelLength、SelStart和SelText属性 常用事件和方法 :较常用事件是Change和KeyPress;较常用的方法是 SetFocus。 Change事件,当文本框的内容被修改时触发。其基本语法如下: Sub Text_Change([Index As Integer]) KeyPress事件,当在文本框中按任一键时触发。其基本语法如下: Sub Text_KeyPress(KeyAscii As Integer) SetFocus方法,将焦点移动到指定的对象。 命 令 按 钮 命令按钮主要用来执行某一功能,通常在命令按钮的Click事件中编写一段程序,当用户用鼠标单击这个按钮时,就会启动这段程序,执行某一特定的功能。 常用属性:Cancel 、Caption 、Default 、Enabled 、Picture 、Style 常用事件和方法:它最重要的事件就是Click和DblClick事件。 Click事件,当用户在命令按钮上单击鼠标时触发。其基本语法如下: Sub Command_Click([Index As Integer]) DblClick事件,当用户在命令按钮上双击鼠标时触发。其基本语法如下: Sub Label_DblClick([Index As Integer]) 复 选 框 复选框是选择类控件,用来设置需要或不需要某一选项功能。在运行时,如果用户用鼠标单击复选框左边的方框,方框中就会出现一个“?”符号,表示已选取这个功能了。 复选框的功能是独立的,如果在同一窗体上有多个复选框,用户可根据需要选取一个或几个。 常用属性:Caption 、Value 常用事件和方法:复选框的常用事件为Click。复选框的方法很少使用。 Click事件:当用户在一个复选框上单击鼠标按钮时发生。 单选按钮 单选按钮控件与复选框控件的功能非常相近,只能从多个选项中选择一个,各选项间的关系是互斥的。 单选按钮使用时经常用多个控件构成一个组,同一时刻只能选择同一组中的一个单选按钮,因此,经常将单选按钮放在一个框架中构成一个选项组。 常用属性:Caption 、Alignment 、Value 常用事件和方法 :单选按钮的常用事件为Click。单选按钮的方法很少使用。 Click事件:当用户在一个单选按钮上单击鼠标按钮时发生。 框 架 框架的作用主要是区分一个控件组,也就是让用户可以容易地区分窗体中的各个选项,或者把几个单选按钮分成组,以便把不同种类的单选按钮分隔开。框架在实际运用中往往和其他控件一起使用。 要在框架中加入组成员,必须先在窗体中建立一个框架,再在它的上面建立其所属按钮。 常用属性:只有Caption,用于设置框架的标题。 常用事件和方法 :框架的常用事件为Click。框架的方法很少使用。 Click事件:当用户在一个框架上单击鼠标按钮时发生。 图 片 框 图片框用于在窗体的特殊位置上放置图形信息,也可以在其上放置多个控件,因此它可作为其他控件的容器。 常用属性:Appearance 、AutoRedraw 、AutoSize Picture 属性:返回/设置图片框控件中显示的图形。在设置时,设 计阶段可直接利用属性窗口指定,运行阶段可使用LoadPicture函 数加载。 常用事件和方法:图片框的事件和方法主要用于绘图。 图 像 框 图像框用来显示图形,可以显示位图、图标、图元文件、增强型图元文件、JPEG或GIF文件。 图像框与图片框的区别是: 图像框控件使用的系统资源比图片框少而且重新绘图速度快,但它仅支持图 片框的一部分属性、事件和方法。 两种控件都支持相同的图片格式,但图像框控件中可以伸展图片的大小使之 适合控件的大小,而图片框控件中不能这样做。 常用属性 Appearance属性 ,返回/设置一个图像框在运行时是否以3D效果显示。 Picture属性 ,返回/设置图像框控件中显示的图形。在设置时,设计阶段 可直接利用属性窗口指定,运行阶段可使用LoadPicture函数加载。 Stretch属性 ,返回/设置一个值,决定是否调整图形的大小以适应图像框控 件。该属性取值如下: False:这是默认值,当图形载入时,图像框本身会自动调整大小, 使得图形可以填满图像框。 True:当图形载入时,图形自动调整大小,填满整个图像框。 图像框的事件和方法很少使用。 线 条 线条(Line)用来在窗体、框架或图片框中创建简单的线段。通过属性设置可控制线条的位置、长度、颜色和样式来定义应用程序的外观。 常用属性:BorderColor 、BorderStyle 、BorderWidth 、X1,Y1属性 、 X2,Y2属性 线条的事件和方法很少使用。 形 状 形状(Shape)控件可以在窗体,框架或图片框中创建矩形、正方形、椭圆形、圆形、圆角矩形或圆角正方形。可以设置形状的样式、颜色、填充样式、边框颜色和边框样式等。 常用属性:除了BorderColor、BorderStyle和BorderWidth属性与 线条对 应的属性相同外,形状还有如下的一些常用属性: FillColor属性,返回/设置填充形状、圆环和方框所使用的颜色。 FillStyle属性,返回/设置一个形状控件的填充样式。 Shape属性,用来设置形状控件的形状。其取值及边框形状如下: 0: 矩形,默认设置。1:正方形。2:椭圆。 3:圆。 4:圆角矩形。 5: 圆角正方形。 形状的事件和方法很少使用。 列 表 框 列表框是一个为用户提供选择的列表。 常用属性: MultiSelect属性,设置该列表框是否能选择多项。 ListCount属性,用于返回列表框中所有选项的总数。 List属性,设计时可以在属性窗口中输入List属性来建立列表项, 运行时对List数组从0到ListCount-1依次取值可以获得列表的所 有项目。 Selected属性 ,它是一个与List数组中的各个元素相对应的一维数 组,记录List数组中每个项目是否被选取。 Sorted属性,设置列表框中的项目是否按字母表顺序排序。 SelCount属性 ,如果MultiSelect属性设置为1或2,则这个属性 反映出列表框中选择的项目。 Style属性 ,这个属性只能在设计时确定。用于控制控件的外观, 其数值可以设置为0(标准样式)和1(复选框样式)。 常用事件和方法 Click事件,当用户在一个对象上单击鼠标按钮时发生。 AddItem方法,用于将项目添加到列表框中,其语法为 : Object.AddItem Item,Index RemoveItem方法,用于从列表框中删除一个项目,其语法为: Object.RemoveItem Index Clear方法,删除列表框中的所有项目,其语法为: Object.Clear 组 合 框 组合框的功能与列表框非常相近,但它一次只能选取或输入一个选项,其主要特点是具有带向下箭头的方框。 另外,还可以在组合框上方的框中输入数据。 常用属性 Style属性,返回或设置一个用来指示控件的显示类型和行为的值, 在运行时刻是只读的。其取值如下: 0(默认值):包括一个下拉式列表和一个文本框的下拉式组合框。 1:包括一个文本框和一个不带下拉列表的简单组合框。 2:下拉式列表。 Text属性,在设计模式下,可直接在属性窗口中编辑组合框的List 属性,增加或删除列表项。运行时则要使用AddItem,RemoveItem 等方法添加、删除列表项,这些方法的使用与列表框控件中相同。 计 时 器 计时器控件在设计时可看见它,在运行时它就隐藏起来,但是在后台每隔一定的时间间隔,系统就会自动执行一次计时器事件。 所谓时间间隔,指的是各个计时器事件之间的时间,一般以毫秒(ms)为 基本单位。 常用属性: Enabled属性,决定计时器控件是否开始计时。其语法如下: Object.Enabled=True或False Interval属性,设置两个计时器事件之间的时间间隔。设置的范围 是0,65 535ms。若想在1s内执行n个计时器事件,则必须将Interval 属性的值设置为1000/n才可以实现。系统初始值设置为0。 常用事件和方法 计时器的主要事件就是Timer事件。在每隔Interval指定的时间间 隙就执行一次该事件过程。 例 文件系统控件 文件系统控件包括驱动器列表框、目录列表框和文件列表框。这三个列表框经常结合起来使用。 驱动器列表框是下拉式列表框,默认时在用户系统上显示当前驱动器。当该 控件获得焦点时,用户可以从中选择任何有效的驱动器标识符。 目录列表框从最高层目录开始显示用户系统上的当前驱动器目录结构。在列 表中上下移动时将依次突出显示每个目录项。 文件列表框在运行时显示由Path属性指定的包含在目录中的文件。 驱动器列表框常用属性 其常用属性是Drive,该属性用于设置或返回当前驱动器标识符。 例如: Drive1.Drive="c:\" 'Drive是一个驱动器列表框的名称 从列表框中选择驱动器并不能自动地变更当前的工作驱动器;可用 Drive属性在操作系统级变更驱动器,这只需将它作为ChDrive语 句的参数:ChDrive Drive1.Drive 目录列表框常用属性 目录列表框常用属性是Path,该属性设置目录列表框中所显示目录 的路径。其语法如下:Object.Path=路径字符串 常用事件和方法 驱动器列表框和目录列表框的主要事件是Change。 文件列表框的常用事件是Click和DblClick。 文件系统控件的方法很少使用。 文件列表框常用属性 Path属性,设置文件列表框中显示文件所在的目录。 Pattern属性,设置文件列表框中所显示的文件类型。 Filename属性,设置从文件列表框中取得的文件名。 滚 动 条 VB中的滚动条分为两种类型,即水平滚动条和垂直滚动条。滚动条与文本框、列 表框等一起使用,通过它可以查看列表项目和数据,还可以进行数值输入。 常用属性 : Max属性和Min属性,设置滚动条的最大值和最小值,其值介于-32 768到32 767之间。 Value属性,表示目前滚动条所在位置对应的值。 LargeChange属性,设置用鼠标单击滚动条中间的轴时,每次增减 的数值。系统默认的数值为1,用户可以自己修改。 SmallChange属性 ,设置用鼠标单击滚动条两边的箭头时,每次增 减的数值。系统默认的数值为1,用户可以自己修改。 常用事件和方法 Scroll事件,只在移动滚动框时被激活,单击滚动箭头或单击滚动 条均不能激活该事件。一般可用该事件来监测滚动框的动态变化。 Change事件,在滚动条的滚动框移动后可以激活,即释放滚动框、 单击滚动箭头或单击滚动条时,均会激活该事件。一般可用该事件 来获得移动后的滚动框所在的位置值。 创建应用程序界面 窗 体 窗体(Form)是一个窗口或对话框,是存放控件的容器。 窗体是应用程序的第一个对象。在VB中可以灵活地使用窗体,既可以同时显示程序的所有窗体,也可以按程序的需要显示或隐藏某些窗体。 窗体是设计态的类的概念,而窗口则是运行态的类的实例即对象的概念。 窗体属性 窗体常用的属性如下: Appearance属性,设置窗体是否在运行时以3D效果显示。 AutoRedraw属性,设置窗体被遮盖后是否要自动重绘窗体上的内容。 BackColor属性和ForeColor属性,分别设置窗体上对象的背景色和前景色。 BorderStyle属性,设置窗体的边框样式。 窗体名.BorderStyle=值 FillStyle属性,窗体名.FillStyle=值 Icon属性,设置窗体在最小化后呈现的图标。 MaxButton属性,设置窗体在执行时是否含有最大化按钮。 MDIChild属性,设置这个窗体是否含有另一个MDI子窗体。 MinButton属性,设置窗体在执行时是否含有最小化按钮。 Movable属性,设置窗体是否可以移动。 Picture属性,设置窗体所要显示的图片。 ScaleMode属性,设置窗体的度量单位。 Visible属性,设置窗体在执行时是否可见或是隐藏起来。 WindowsState属性,设置窗体在执行时的状态。 窗体事件 , Activate事件,当窗体变为活动窗口时发生。 , Click事件,当用户在一个对象上按下并释放鼠标按钮时发生。 , DblClick事件,当用户在一个对象上按下并释放鼠标按钮后再次按下并释放鼠标 按钮时发生。 , Deactivate事件,当窗体不再是活动窗口时发生。 , Initialize事件,当应用程序创建一个窗体、MDI 窗体或类的实例时发生。 , Load事件,当加载窗体时发生。 , MouseDown事件,当用户在拥有焦点的对象上按下鼠标按钮时发生。 , QueryUnload事件,在关闭窗体或应用程序之前发生。 , Resize事件,当第一次显示一个窗体时或改变一个对象的大小时发生。 , Terminate事件,当从内存中删除一个窗体、MDI 窗体或类的所有引用时发生。 , Unload事件,当要从屏幕上删除窗体时发生。 窗体方法 Load语句,该语句用来将新创建的窗体加载到内存中,当VB加载窗体对 象时,先把窗体属性设置为初始值,再执行Load事件过程。 Show方法,用来显示一个已经装入内存的窗体。其中“模式”有两个取值: 0(默认值)表示非模化的,1表示模化的。 Hide方法,用于隐藏显示在屏幕上的窗体。 Unload语句,用来卸载窗体。在窗体卸载之后,所有在运行时放到该窗体 上的控件都不再是可访问的,在设计时放到该窗体上的控件将保持不变。 窗体的生命周期 通常地,VB窗体在整个生命周期中要经历4个状态。 创建但不加载,Initialize事件是该状态开始的标志。因而,放在 Form_Initialize事件过程中的代码,就是窗体创建时最先执行的代码。 加载但不显示,Load事件标志这个状态的开始。一旦窗体进入加载状态, Form_Load事件过程中的代码就开始执行。 显示状态,一旦窗体可见,用户就能和它交互作用。窗体在卸载时可以是隐 藏的,也可以是可见的。若没有隐藏,则它保持可见直到卸载完毕。 窗体卸载之前,最后发生的事件为Unload事件。该事件发生前,会有另一 个重要的事件QueryUnload发生。如果某些数据希望保存,可在 QueryUnload事件过程中提示保存或忽略所做的更改的信息。 完全释放内存和资源,释放内存和资源的惟一办法就是卸载窗体,并把所有 引用设置为Nothing。 Set Form1=Nothing ,该窗体在撤销前会接收到 Terminate事件。 使用控件数组 在应用程序编写过程中,可能用到一些类型相同且功能相近的控件,这时可以将这些控件定义为控件数组。 控件数组类似于使用数组变量,其特点如下: 具有相同的名称(Name)。 通过索引值(下标)来区别控件数组中的元素。 创建控件数组的方法有: 给多个控件定义相同的控件名称。 在窗体上复制并粘贴相同类型的控件。 设置控件的索引属性Index的值为非Null数值。 焦点与Tab键序 焦点是接收用户鼠标或键盘输入的能力。当对象具有焦点时,可接收用户的输入。 并非所有的控件都具有接收焦点的能力,Frame,Lable,Menu,Line,Image和Timer等控件均不能接收焦点。 当对象得到或失去焦点时,会产生GotFocus或LostFocus事件。窗体和多数控件支持这些事件。 GotFocus事件发生在对象得到焦点时,LostFocus事件发生在失去焦点时。 将焦点赋予对象的操作方法 : 运行时选择对象。 运行时用快捷键选择对象。 在代码中使用SetFocus方法。 大多数的控件得到或失去焦点时的外观是不相同的,如命令按钮得到焦点后周围会出现一个虚线框。文本框得到焦点后会出现闪烁的光标。 当对象的Enabled和Visible属性为True时,它才能接收焦点。 所谓Tab键序指的是在用户按下Tab键时,焦点在控件间移动的顺序。 每个窗体都有自己的Tab键序。默认状态下Tab键序与建立这些控件的顺序相同。 如果希望更改Tab键序,例如希望焦点直接从Command1转移到Command3,可以通过设置TabIndex属性来改变一个控件的Tab键顺序。控件的TabIndex属性决定了它在Tab键顺序中的位置。 将控件的TabStop属性设为False,便可将此控件从键顺序中删除。 菜 单 设 计 菜单是应用系统的组成部分之一,它一般由菜单栏和下拉菜单组成,从结构上看, 菜单可分成若干级,第一级是菜单栏,它包括若干菜单项,菜单项为横向排列,每 一菜单项都可对应一个下拉式子菜单,子菜单中的选项竖向排列,同时子菜单中的 每一项又可对应有自已的下拉菜单。 建立菜单 选择“工具”菜单中的“菜单编辑器”或单击工具栏中的“菜单编辑器”快捷按钮打开 菜单编辑器,如图 所示。 属性设置 “菜单编辑器”窗口的上方部分用于设置每个菜单项的基本属性。 “标题”文本框:设置菜单项的标题,即菜单项的Caption属性。在“标题” 文本框中输入一个“-”,表示该菜单项为一个分割条。 “名称”文本框:设置菜单项的名称,即菜单项的Name属性。 “索引”文本框:设置菜单控件数组下标,即菜单项的Index属性。 “快捷键”组合框:为菜单项选择一个快捷键。 菜单项编辑按钮 “菜单编辑器”窗口的中部有7个按钮用于编辑菜单的菜单项。 “下一个”按钮:编辑下一个菜单项。 “插入”按钮:插入一个菜单项。 “删除”按钮:删除当前菜单项。 “?”和“?”按钮:用于调整菜单项的位置。 “?”和“?”按钮:用于调整菜单项的级别。 把代码连接到菜单上 在VB中,每一菜单项都是一个控件,都响应某一事件过程。 一般来说,菜单项都响应鼠标单击事件,即每个菜单项都拥有一个事件处理过程 Name_Click()(这里的Name表示菜单项的名称)。 编写代码是在代码窗口中进行的。用户只要在过程头与过程尾之间输入想执行的某 项任务的代码即可。 弹出式菜单设计 弹出式菜单的设计过程与一般菜单设计过程基本相同,只需将该菜单的“可见”复选 框不选中,即不可见,这样,该菜单就不在窗体中直接显示出来。 为了显示弹出式菜单,可以使用PopupMenu方法,该方法的语法如下: PopupMenu “菜单名”,flags,x,y,boldcommand flags参数为一些常量数值的设置,包含位置及行为两个指定值,当PopupMenu方 法中没有给出x值时,flags参数为行为参数。 例:PopupMenu Oper,0,,,Div 多文档界面 VB允许在单个容器窗体中创建包含多个窗体的多文档界面(MDI)。多文档界面最明显的例子是Office套装软件,如Office 97中的Word 97、Excel 97等,它们允许用户同时打开多个文件,每个文件占用一个窗口,在VB中称为子窗体,用户可以在已经打开的窗口之间切换。 子窗体就是其MDIChild属性设置为True的普通窗体,一个应用程序可以包含许多相似或者不同样式的MDI子窗体。 MDI窗体 MDI窗体的特性 : 主窗口MDI窗体(称父窗体)只能有且必须有一个。 子窗体至少有一个。 所有的子窗体无论如何操作都不能移出MDI窗体。 子窗体最小化后的图标位于MDI窗体的底部(不是在任务栏)。 父窗体最小化时(图标在任务栏),所有的子窗体也同时最小化且MDI窗体及其所有子窗体将由一个图标来代表。 还原MDI窗体时MDI窗体及其所有子窗体将按最小化之前的状态显示出来。 通过设置子窗体的AutoShowChildren属性,可以在程序加载时自动显示或隐藏该窗体。 MDI窗体的常用属性和方法 ActiveForm属性 只读属性,返回MDI窗体中的活动子窗体的名称。 Arrange方法 在MDI窗体对象内排列窗口或图标。 创建MDI界面 首先进入VB的系统集成环境,建立新的工程文件,此时,Form1新窗体出现。选择主菜单中“工程”中的“添加MDI窗体”,在随后出现的对话框中单击“打开”命令按钮,即出现MDI主窗体。 MDI父窗体的标题和名称属性值均为“MDIForm1”,这是系统初置的。在该窗体上只能放置图片框或菜单控件。在图片框中可以放置其他控件,如命令按钮等。 MDI窗体 有两种方法可以添入MDI子窗体。 将一般窗体变为MDI子窗体,在建立了MDI父窗体之后,Form1窗体还 不是MDI中的一员,要想让它成为子窗体,必须将其MDIChild属性设置 为True。 添加MDI子窗体,选择主菜单“工程”中的“添加窗体”,像前面添加MDI 父窗体一样,出现添加窗体窗口,选中“窗体”,在屏幕上出现一个新的窗体, 将其MDIChild属性设置为True。 加载和关闭MDI窗体及子窗体 加载MDI父窗体及子窗体,如:Form1.Show 关闭MDI窗体 :Unload Me VB与数据库 数据访问对象模型 在VB中,可用的数据访问接口有3种:ActiveX数据对象(ADO)、远程数据对象(RDO)和数据访问对象(DAO)。 数据访问接口是一个对象模型,它代表了访问数据的各个方面。可以在任何应用程 序中通过编程控制连接、语句生成器和供使用的返回数据。 最新的访问接口是ADO,它比RDO和DAO更加简单,而且是更加灵活的对象模型。对于新工程,应该使用ADO作为数据访问接口。 ADO控件是VB 5.0中文版提供的一个ActiveX控件,与旧版的Data控件相似。 结构化查询语言 对于VB中的关系数据库,一旦数据存入数据库之后,就可以用SQL(Structured Query Language,结构化查询语言)同数据库“对话”。 通常都是用户用SQL来发问,数据库则以符合发问条件的记录来“回答”。 查询的语法中通常都包含表名、域名和一些条件等。 数据库的分类 VB可以访问以下3类数据库: Jet数据库:数据库由Jet引擎直接生成和操作,不仅灵活而且速度快, Microsoft Access和VB使用相同的Jet数据库引擎。 ISAM数据库:索引顺序访问方法(ISAM)数据库有几种不同的形式,如 Dbase,FoxPro,Text Files和Paradox。在VB中可以生成和操作这些数据 库。 ODBC数据库:开放式数据库连接,这些数据库包括遵守ODBC标准的客 户/服务器数据库,如Microsoft SQL Server,Oracle,Sybase等,VB可以 使用任何支持ODBC标准的数据库。 ODBC和数据源 ODBC的全称为Open Database Connection,即开放式数据库连接,是Microsoft公司在1989年推出的连接外部数据库的标准。ODBC的优点是: ODBC提供了一个能访问大量数据库的单一接口。 ODBC使客户应用程序的开发可以独立于后端服务器。 ODBC体系结构 应用程序:是为了访问数据库而开发的前端,它通 过ODBC的API来建立与数据库的连接,并使用 SQL命令操纵数据库。 数据源:用于描述数据库管理系统、远程操纵系统 和网络之间的组合方式,其中远程操作系统和网络 并不是必需的。 驱动程序管理器:是应用程序和用户访问一个特定 数据库所必需的驱动程序之间的一个中介。 驱动程序:为迁移一个特定的数据库管理系统真正 实现ODBC API。它建立与服务器的连接,提交SQL 查询,然后向应用程序返回结果集或出错信息。 Data控件 Data控件是VB中访问数据库的重要控件,它支持大多数与数据库有关的操作,通过使用Data控件可以开发非常复杂的数据库应用程序。 Data控件可以不使用代码完成以下功能: 完成对本地和远程数据库的链接。 打开指定的数据库表,或者是基于SQL的查询集。 将表中的字段传至数据绑定控件,并针对数据绑定控件中的修改来更新数据 库。 关闭数据库。 Data控件的属性 Connect属性,设置连接的数据库的类型。VB提供了7种可访问的数据库 类型,其中比较常用的有Microsoft Access,dBASE和FoxPro等。 DatabaseName属性,设置被访问的数据库的名字和路径。 Exclusive属性,设置是单用户(独占)方式还是多用户方式打开指定的数 据库。 ReadOnly属性,设置是否以只读方式打开指定的数据库。 RecordSource属性,设置数据源,为底层表、SQL语句或QueryDef对象。 使用控件数组 Recordset属性,返回一个指定数据源中的记录集或运行一次查询所得的记 录的结果集合。 RecordsetType属性 ,设置创建的Recordset对象的类型,其取值如下: dbOpenTable /dbOpenDynaset /dbOpenSnapshot BOFAction属性,设置当BOF为True时,即记录集移动到第一个记录的 上头时,Data控件的动作。 EOFAction属性,设置当EOF为True时,即记录集移动到最后一个记录 的下头时,Data控件的动作。 Data控件的方法 Data控件的常用方法如下: Refresh方法,在Data控件打开或重新打开数据库的内容时,该方法可以 更新Data控件的数据设置。 UpdateRecord方法,把当前的内容保存到数据库中,但不触发Validate事 件。 UpdateControls方法,将Data控件记录集中的当前记录填充到某个数据绑 定控件。 Data控件的事件 Data控件的常用事件如下: Error事件,当Data控件产生执行错误时触发。 Reposition事件,当某一个记录成为当前记录后触发。通常是利用该事件进 行以当前记录内容为基础的操作,如进行计算等。 Validate事件,在记录改变之前,和使用删除、更新或关闭操作之前触发。 Recordset对象 Recordset是由Data控件返回的代表选定记录集的一个对象,它还是一个属性也是一个对象,并且具有自己的方法和属性。 Recordset的方法 。 MoveFirst,MoveNext,MovePrevious和MoveLast方法,分别是 将记录定位在记录集的首记录、下一个记录、上一个记录和最后一 个记录上。 FindFirst,FindLast,FindNext和FindPrevious方法 ,分别是自 首记录开始向下查询匹配的第一个记录、自尾记录开始向上查询匹 配的第一个记录、自当前记录开始向下查询匹配的第一个记录和自 当前记录开始向上查询匹配的第一个记录。 Seek方法,该方法只用于对表记录集类型的记录集中的记录查找。 AddNew,Edit,Delete和Update方法 AddNew方法用于添加一个新记录。实际上该方法只是清除拷贝缓 冲区允许输入新的记录,但并没有把新记录添加到记录集中。要想 真正增加记录,应当使用Update方法。 Edit方法将当前记录放入拷贝缓冲区,以改变信息,进行编辑记录 的操作,和AddNew方法一样,如果不使用Update方法,所有的 编辑结果将不会改变记录。 Delete方法用于删除一个记录,一旦使用了该方法,记录就永远消 失不可恢复。 Update方法进行记录集中的记录更新。 Recordset的属性 Recordset的常用属性如下: Bookmark属性,这是书签属性。和我们在阅读时使用的书签一样,用于标识记录集中的记录,以便在需要时快速地将记录指针指向一个记录。存储书签的变量必须是Variant类型。 AbsolutePosition属性,该属性指示当前记录的位置。 DBGrid控件 访问数据库中的数据,只有Data控件是不够的,必须利用数据绑定控件来显示、编辑和查询数据库中的数据。 可通过数据绑定控件访问数据库的信息。当一个控件通过设置属性被绑定到Data控件时,VB会把从当前数据库记录取出的相应字段值应用于该控件,控件显示数据并接受更改。 菜单项编辑按钮 在VB中可以与Data控件一起使用的标准绑定控件包括:复选框、图像框、图片框、标签、文本框、列表框和组合框。 大多数数据绑定控件都有DataSource和DataField属性,前者指定绑定的数据源,后者指定绑定的字段。 用DBGrid控件浏览数据库表 在使用DBGrid控件之前,必须通过 “工程”菜单的“部件”选取“Microsoft Data Bound Grid Control 5.0”,如 图 14所示。单击“确定”后,DBGrid 控件的图标出现在工具箱中,我们可 以像内部控件一样将它拖放在窗体 中。 DBGrid控件设计操作 在“属性”窗口通过设置可以改变DBGrid控件的任何可视属性。DBGrid控件的“属性页”如图所示。 DBGrid控件运行操作 在运行时,DBGrid控件从基本Recordset对象中显示记录。 当前记录相应于Data控件的当前记录,可以用DBGrid控件的Bookmark 属性对它进行设置或者检索。 在DBGrid控件中改变一个记录(或者一个记录中的任何字段)时,则基本 记录集就会在移动到一个新记录(行)时被更新,假设它可以更新并且 DBGrid控件的AllowUpdate属性设置为True。 如果RecordSelectors属性为True,则通过单击该行的记录选择器图标可以 选择一整行。 可用SelStartCol和SelEndCol属性返回一个选定范围的起始列和结束列。 ADO Data控件 使用ADO Data控件,可以利用Microsoft ActiveX Data Objects(ADO)快速建立数据绑定控件和数据提供者之间的连接。 ADO Data控件可以实现以下功能: 连接一个本地数据库或远程数据库。 打开一个指定的数据库表,或定义一个基于结构化查询语言(SQL)的查询、 存储过程或该数据库中的表的视图的记录集合。 将数据字段的数值传递给数据绑定控件,可以在这些控件中显示或更改这些 数值。 添加新的记录,或根据更改显示在绑定的控件中的数据来更新一个数据库。 “部件”对话框 要使用ADO Data控件,单击“工程”菜单上的“部件”选项,并在“部件”对话框中选择“Microsoft ADO Data Control 6.0”,如图所示。单击“确定”按钮,就可以在VB中的控件工具箱内看见它。通过数据控件可以直接对记录集进行访问,移动记录指针,不需要编写代码即可实现对数据库的操作。 ADO Data控件的属性 ConnectionString属性,用来建立到数据源的连接的信息。由于VB的ADO 对象模型可以链接不同类型的数据库,所以在使用ADO Data控件时也能够 通过ConnectionString属性来设置要链接的数据库。 在设计时,可以首先将ConnectionString属性设置为一个有效的连 接字符串,也可以将ConnectionString属性设置为定义连接的文件 名。该文件是由“数据链接”对话框产生的。 设置ConnectionString属性的步骤如下: 单击ADOData控件,并在“属性”窗口中单击 ConnectionString属性的“...”按钮,出现如图 19所示的“属 性页”对话框。 如果已经创建了一个Microsoft数据链接文件(.UDL),选 择“使用Data Link文件”单选按钮,并单击“浏览”按钮,以 找到计算机上的文件。 如果使用DSN,则单击“使用ODBC数据源名”连接,并从 框中选择一个DSN,或单击“新建”按钮创建一个。 如果想创建一个连接字符串,选择“使用连接字符串”单选按 钮,单击“生成”按钮,然后在如图 20所示的“数据链接属性” 对话框创建一个连接。 在创建连接字符串后,单击“确定”按钮。ConnectionString 属性将使用一个类似于下面的字符串来填充: 在运行时,可以动态地设置ConnectionString更改数据库。 RecordSource属性, RecordSource属性设置要链接的表或者SQL查询语句。可以在“属性”窗口中将“记录源”属性设置为一个SQL语句。例如: SELECT * FROM student WHERE sex="男" CommandType属性, CommandType属性用于指定RecordSource属性的取值类型,其取值如下: adCmdUnknown:默认值。CommandText属性中的命令类型未知。 adCmdTable:将CommandText作为其列全部由内部生成的SQL查询返回 的表格的名称进行计算。 adCmdText:将CommandText作为命令或存储过程调用的文本化定义进行 计算。 adCmdStoreProc:将CommandText作为存储过程名进行计算。 UserName属性,指定用户的名称,当数据库受密码保护时,需要指定该属性。该属性可以在ConnectionString中指定 Password属性,指定密码,在访问一个受保护的数据库时指定密码是必需的,如果在ConnectionString属性中指定了密码,则将覆盖在该属性中指定的值。 ConnectionTimeout属性,该属性设置等待建立一个连接的时间,以秒为单位。如果连接超时,则返回一个错误。 ADO Data控件的方法 AddNew方法,用于在ADO Data控件的记录集中添加一条新记录。其使用语法如下: Adodc1.Recordset.AddNew——其中Adodc1是一个ADO Data控件的名字。在添加语句之后,应该给相应的各个字段赋值,然后调用UpdateBatch方法保存记录,或者调用CancelUpdate方法取消保存。 Delete方法,用于在ADO Data控件的记录集中删除当前记录。其使用语法如下: Adodc1.Recordset.Delete MoveFirst,MoveLast,MoveNext和MovePrevious方法,用于在ADO Data控件的记录集中移动记录。 CancelUpdate方法,用于取消ADO Data控件的记录集中添加或编辑操作,恢复修改前的状态。其使用语法如下:Adodc1.Recordset.CancelUpdate UpdateBatch方法,用于保存ADO Data控件的记录集中添加或编辑操作。其使用语法如下: Adodc1.Recordset.UpdateBatch ADO Data控件的事件 WillMove和MoveComplete事件, WillMove事件在当前记录的位置即将发 生变化时触发,如使用ADO Data控件上的按钮移动记录位置时。 WillComplete事件在位置改变完成时触发。 WillChangeField和FieldChangeComplete事件, WillChangeField事件是当 前记录集中当前记录的一个或多个字段发生变化时触发。而 FieldChangeComplete事件则是当字段的值发生变化后触发。 WillChangeRecord和RecordChangeComplete事件, WillChangeRecord事 件是当记录集中的一个或多个记录发生变化前产生的。而 RecordChangeComplete事件则是当记录已经完成后触发。 ADO对象编程 什么是ADO ADO是为Microsoft最新最强大的数据访问范例OLE DB而设计的,是基于OLE DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法,是一个便于使用的应用程序层接口。 ADO对象可以在所有支持COM和OLE的平台上使用,如VB,VC++,VBScript和Java等等。 OLE DB是一种底层数据访问界面接口,它是一套部件对象模型(COM)接口, 提供了对任何数据库的高效的访问,包括关系数据库和非关系数据库、电子邮件和文件系统,以及文本文件和图形等。 ADO对象模型 ADO具有非常简单的对象模型,如图 1所示,包括以下7个对象:Connection,Command,Parameter,Recordset,Field,Property,Error。 ADO的核心是Connection,Recordset和Command对象。 ADO引用 有两种ADO类型库,一种叫ADODB, 包含在MSADO15.DLL中。它以 “Microsoft ActiveX Data Objects 2.1 Library”出现在“引用...”对话框(可从 “工程”菜单中得到)中。另一种叫做 ADOR,包含在MSADOR15.DLL中。 它以“Microsoft ActiveX Data Objects Recordset 2.0 Library”出现在“引用...” 对话框中。如图 所示,在工程中引用了 这两种类型库。 Connection对象 Connection对象用于建立与数据源的连接。在客户机,服务器结构中,该对象实际上是表示了同服务器的实际的网络连接。 建立和数据库的连接是访问数据库的必要一步,ADO打开连接的主要方法是通过Connection对象来连接数据库,即使用Connection.Open方法。 Connection对象的属性 ConnectionString属性 ,该属性为连接字符串,用于建立和数据库的连接,它包含了连接数据源所需的各种信息,在打开之前必须设置该属性。 Dim cn AS ADODB.Connection Set cn=New ADODB.Connection cn.ConnectionString="DSN=datas;UID=li;PWD=chun" 不使用数据源名称,则设置该连接字符串如下: Dim cn AS ADODB.Connection Set cn=New ADODB.Connection cn.ConnectionString="Driver={SQLServer};Server=mm;UID=li; " & "PWD=pwd;Database=datas" ConnectionTimeout属性,该属性用于设置连接的最长时间。如果在建立连接时,等待时间超过了这个属性所设定的时间,则会自动中止连接操作的尝试,并产生一个错误。默认值是15秒。 CursorLocation属性,该属性允许用户选择不同的游标位置。只有在连接建立之前,设置该属性并建立连接才有效,对于已经建立的连接,设置该属性对连接不会产生影响。 DefaultDatabase属性,该属性为Connection对象指明一个默认的数据库。 Connection对象的方法 Open方法,该方法建立同数据源的连接。该方法完成后,就建立了同数据源的物理连接。其使用语法如下: Connection.Open [ConnectionString,UserID,Password,Options] Close方法,该方法用于关闭一个数据库连接。该连接对象仍然驻留在内存中,可以对其属性更改后再重新建立连接。如果要将该对象从内存中移去,使用以下代码: Set Connection=Nothing Execute方法,该方法用于执行一个SQL查询等。该方法即可以执行动作查询,也可以执行选择查证。 事务处理方法 ,在ADO中,同样支持事务处理。如果希望控制一组操作的完成或取消,则可以选择使用事务处理方法。ADO提供了三种事务处理方法,它们是: BeginTrans:开始一个事务。 CommitTrans:提交事务,所有事务中的操作被写入数据源。 RollBackTrans:回滚事务,所有事务中的操作结果被取消。 通常用BeginTrans方法开始一个新事务,使用CommitTrans或RollBackTrans方法结束事务。系统在任何情况下,都不会自动提交事务。 Recordset对象 ADO Recordset对象包含某个查询返回的记录以及那些记录中的游标。 如果选择创建一个Connection对象,就可以在同一个连接上打开多个Recordset对象。 任何时候,Recordset对象所指的当前记录均为集合内的单个记录。 Recordset对象的属性 AbsolutePage属性,指定当前记录所在的页。 AbsolutePosition属性 ,指定Recordset对象当前记录的序号位置。 ActiveConnection属性 ,指示指定的Command或Recordset对象当前所属的Connection对象。 BOF属性 ,指示当前记录位置位于Recordset对象的第一个记录之前。 EOF属性 ,指示当前记录位置位于Recordset对象的最后一个记录之后。 Bookmark属性 ,返回惟一标识Recordset对象中当前记录的书签,或者将Recordset对象的当前记录设置为由有效书签所标识的记录。 CursorLocation属性 ,设置或返回游标引擎的位置。 CursorType属性 ,指示在Recordset对象中使用的游标类型。 Filter属性 ,为Recordset对象中的数据指示筛选条件。 LockType属性 ,指示编辑过程中对记录使用的锁定类型 MaxRecords属性 ,指示通过查询返回Recordset对象的记录的最大个数。 RecordCount属性 ,指示Recordset对象中记录的当前记录数。 Source属性 ,指示Recordset对象中数据的来源(Command对象、SQL语句、表的名称或存储过程)。 State属性 ,对所有可应用对象,说明其对象状态是打开的或是关闭的。 Recordset对象的方法 AddNew方法 ,为可更新的Recordset对象创建新记录。 Cancel方法 ,取消执行挂起的异步Execute或Open方法的调用。 CancelBatch方法 ,取消挂起的批更新。 CancelUpdate方法 ,取消在调用Update方法前对当前记录或新记录所做的任何更改。 Delete方法 ,删除当前记录可记录组。 Move方法,移动Recordset对象中当前记录的位置。 MoveFirst,MoveLast,MoveNext和MovePrevious方法 ,移动到指定Recordset对象中的第一个、最后一个、下一个或上一个记录并使该记录成为当前记录。 Requery方法 ,通过重新执行对象所基于的查询,来更新Recordset对象中的数据。 Open方法,打开游标。使用语法如下: recordset.Open source,activeconnection,cursortype,locktype,options 其中: source:该参数可以是一个有效的command对象的变量名,或是一 个查询、存储过程或表名等。 activeconnection:该参数指明该记录集是基于哪个Connection对象 连接的,必须注意这个对象应是已建立的连接。 cursortype:该参数指明使用的游标类型。 locktype:该参数指明记录锁定方式。 options:该参数是指source参数中内容的类型,如表、存储过程等。 Update方法,保存对Recordset对象的当前记录所做的所有更改。 Command对象 Command对象定义了将对数据源执行的指定命令。 ADO通过使用Command对象查询数据库并返回Recordset对象中的记录,以便执行大量操作或处理数据库结构。 在执行带参数的存储过程的调用时,必须使用Command对象。 Command对象的属性 ActiveConnection属性,指示指定的Command或Recordset对象当前所属的 Connection对象。 CommandText属性,包含要发送给提供者的命令的文本。 CommandType属性,指示Command对象的类型。 Prepared属性,指示执行前是否保存命令的编译版本。 Command对象的方法 Cancel方法,取消执行挂起的异步Execute或Open方法的调用。 CreateParameter方法 ,用指定的属性创建新的Parameter对象。如果 Command对象的CommandText是存储过程或参数化查询,可以使用该方 法创建参数对象。其使用语法如下: Set parameter=command.CreateParameter(name,type,direction,size,value) name是该对象的名字。 type是该参数的数据类型。 direction说明该参数是用于输入还是输出或是输入输出等。 size指出参数的长度。 value是该参数的具体值。 Execute方法,执行在CommandText属性中指定的查询、SQL语句或存 储过程。 Parameter对象 Command对象有一个Parameters参数集合,其中包含的Parameter对象代表参数或基于参数化查询或存储过程的Command对象相关联的参数。 Parameter对象的属性如下: Direction属性,指示所标明的输入(adParamInput)、输出(adParamOutput) 还是输入输出参数。 Name属性,指示该对象的名字。 Size属性,指示在Parameter对象的最大大小(以字节为单位)。 Type属性 ,指示在Parameter对象的数据类型。 Value属性 ,指示赋给Parameter对象的值。 Parameter对象的方法如下: AppendChunk方法,将二进制数据追加给Parameter对象。 Append方法,将Parameter对象添加到Parameters集合中。 cmd.Parameters.Append par1 Delete方法,从Parameters集中删除Parameter对象。 ADO应用实例 使用ADO编程方式实现数据库表的基本操作,如图 所示。 程序演示 面向对象和组件编程 创建自己的类 用户自定义类型的不足 用户定义类型是一个使相关数据项成组的强大 工具。如定义一个名为Point的用户定义类型: 可以声明一个Point类型的变量p,然后编写两 个过程,一个为setvalue,用于给p的各个字段 赋值;另一个为display,用于显示其值。这些 代码如下: 思考-上述代码有那些不足之处? 类的作用 面向对象的编程通过将数据和过程结合成一个单一实体解决了上述问题,当把上面的用户定义类型Point变成一个CPoint类时,其数据变成了私有型,访问它们的过程移到类中并变成了属性和方法。这就是所谓的封装,也就是说,对象是一个包括代码和数据的单元。 当从CPoint类创建一个变量(即创建该类的一个对象)时,访问其数据必须通过构成其接口的属性及方法。 重要的是要记住,可以定义一个对象来封装数据和确保数据的可靠性。 定义类模块 在VB中通过“类模块”来创建类。 我们以一个例子说明如何使用类模块定义类,还将讨论如何为新的类创建属性和方法,并演示对象是如何创建和撤销的。 创建一个工程并在其中添加一个类模块Class1和一个窗体Form1,共同实 现用户输入的一个字符串的逆转 首先打开一个新的“标准.EXE”工程,建立一个工程名为“工程1”的 工程,在“工程”菜单中选中“添加类模块”,插入一个类模块Class1。 开始时,该类模块窗口是空白的,我们可以输入相应的类定义代码, 如图 所示是创建的Class1类模块的代码。 该类定义了一个全局变量Name和一个过程ReverseName, 该过程用于逆转Name指定的字符串。 在该工程中添加一个普通的窗体Form1,在其中添加两个标 签label1和label2,它们的标题分别为“原来的字符串”和“逆 转后字符串”;再添加两个文本框text1和text2;最后添加 一个命令按钮command1,其标题为“逆转”,并在该命令按 钮上设计如下事件过程: 本窗体的设计屏幕如图 所示。启动本工程,出现Form1窗体的屏幕 类模块有两个事件:Initialize和Terminate。 一般Initialize事件包含了对象创建时所需的所有代码。Terminate 事件包含撤销对象后进行清理的所有代码。 类模块和标准模块的不同点 存储数据方法的不同,标准模块的数据只有一个备份,这意味着标 准模块中一个公共变量的值改变以后,在后面的程序中再读取该变 量时,它将得到同一个值。而类模块的数据,是相对于类实例(也 就是由类创建的每一个对象)而独立存在的。 数据的存活期不同,标准模块中的数据在程序作用域内存在,而类 实例中的数据只存在于对象的存活期,它随对象的创建而创建,随 对象的撤销而消失。 当变量在标准模块中声明为Public时,则它在工程中任何地方都是 可见的;而类模块中的Public变量,只有当对象变量含有对某一类 实例的引用时才能访问。 在类中添加属性和方法 类的默认接口由类的属性、方法和事件组成。属性、方法和事件对外界是可见的。 与此相对应的是类的内部私有数据、过程和函数,它们被类的封装隐藏起来。 一般来说,属性表示对象的数据,方法表示对象能执行的动作。或者说,属性提供了对象的描述,而方法则是它的行为。 向类中添加属性 定义类属性的最简单的方法,是向类的模块添加公共变量。Public name As String 给类创建私有数据也很简单,只须声明一个Private变量,它就能被该类模块中的编码所访问:Private c As Single 数据隐藏是指保护对象的部分数据,而其余数据则以属性形式公开。这是面向对象的封装原则的一个方面。 其实现需要使用属性过程。 属性过程 如果只能通过声明公共变量来创建属性,那么就不能在更高层次上实现数据 隐藏。 为了达到更高的数据隐藏,VB提供了属性过程,只能通过属性过程来获取 属性值和对属性值进行修改。 当设置或检索属性值时,VB就执行对应属性过程的代码。 'pn为存储n属性的私有数据 Private pn As Integer Public Property Get n() As Integer n = pn End Property Public Property Let n(ByVal Newn As Integer) If (Newn <= 0) Then MsgBox "n值不能小于等于0", vbOKOnly, "信息提示" Else pn = Newn End If End Property Set myobject = New Class2 myobject.n = 10 '调用Property Let过程使pn=10 x=myobject.n '调用Property Get过程将pn赋给n使x=10 属性过程与公共变量的比较 以下情况应使用属性过程: 属性为只读,或一旦设置就不能改变。 属性已设置的值需要验证。 超出特定范围的值,例如,负数虽符合属性的数据类型,但属性如果允许这 样的假设值出现,就会导致程序出错。 属性的设置可导致一些对象状态的明显变化,例如Visible属性。 属性设置可改变内部变量或其他属性的值。 以下情况应使用只读属性的公共变量: 属性是自验证类型。 在数据类型所支持范围内的值都是有效的。 属性是String数据类型,并没有大小或字符串取值的限制。 运行属性过程 VB提供了三种属性过程。 每一个属性过程都有自己特殊的功能。典型的属性由一对属性过程组成: Property Get检索属性的值,Property Let或Property Set给属性赋值。如 果有Set语句,则VB调用Property Set,如果没有则调用Property Let。 要创建只读属性,只须简单地省略Property Let;对于对象属性,只须简单 地省略Property Set。 属性过程声明中参数的要求 在Property过程中,(参数1,...,参数n)必须具有与过程相同的名称和相同 的数据类型。就像其他过程类型一样,列表中的必需参数应排在第一个可选 参数前。 例如,一个类似二维数组的属性的Property Let声明: Property Get过程的参数声明必须与Property Let过程的参数名称 和数据类型相同: 向类中添加方法 一般来说,属性是关于某个对象的数据,而方法则是该对象可能被要求去执 行的动作。 类的方法就是所声明的Sub或者Function公共过程。例如,为了给Class 类创建Comp方法,可将下面的Public Function过程添加到类模块中: Public Function Comp() As Double ... End Function 类方法的意义 类的公共接口是由类模块的属性和方法声明来定义的。同数据隐藏一样,声 明为Private的过程也不是接口的组成部分。这意味着可以更改类模块内部 使用的实用程序的过程,而不影响使用该对象的代码。 更重要的是,更改方法实现的内部公共Sub或者Function过程的代码,不 会影响使用该方法的代码。只要不改变过程参数的数据类型,或者不改变 Function过程所返回的数据类型,接口就不会改变。 将对象的实现细节隐藏在接口之后,是封装的另一方面。封装可以增强方法 的性能,或者完全改变方法的实现途径,而不必对使用该方法的代码进行更 改。 在类中添加事件 属性和方法属于入端接口,因为它们是从对象外面调用的。相对而言,事件 被称为出端接口,因为它们是在对象里边产生,在其他地方处理。 事件的声明与触发 在类模块的声明部分,用Event关键字来声明事件。事件可以有 ByVal和ByRef参数。 Option Explicit Public Event PercentDone(ByVal Percent As Single, ByRef Cancel As Boolean) 自定义事件的触发,需要特定条件成立时显示触发 处理事件的对象 触发事件的对象叫做事件源。为了处理事件源所触发的事件,可以用WithEvents关键字声明对象类的变量。 使用WithEvents变量时,应该注意下面这些限制条件: WithEvents变量不能把它声明为As Object。 不能把WithEvents变量声明为As New 。 不能在标准模块中声明WithEvents变量。只能在类模块、窗体模块以及其 他定义类的模块中声明。 不能创建WithEvents变量数组。 向窗体添加事件 将某个事件添加到一个类中,然后在窗体中使用该事件的具体步骤: 在定义类的类模块声明部分,用Event语句来声明事件,该事件带有希望它 带有的任何参数。事件总是Public。 在类模块代码中的合适地方,用RaiseEvent语句来引发事件,并提供所需 要的参数。 在将要处理事件的模块声明部分,使用WithEvents关键字,添加该类类型 的变量。它必须是一个模块级的变量。 在代码窗口左边的下拉菜单上,选择声明为WithEvents的变量。 在代码窗口右边的下拉菜单上,选择希望处理的事件(可以为类声明多个事 件)。 使用所提供的参数,将代码添加到事件过程中。 COM组件和ActiveX技术 COM是一种技术标准。它是由微软公司创建,提供了使多个应用程序或组件对象协同工作并相互通信的能力。 COM组件是遵循COM 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 编写、以WIN32动态链接库(DLL)或可执行文件(EXE)的形式发布的可执行的二进制代码。 遵循COM的规范标准,使组件与应用、组件与组件之间可以相互操作,极其方便地建立可伸缩的应用系统。 组件编程的特点 从工程的角度看,组件在应用开发方面具有以下特点: 组件与开发的工具语言无关。开发人员可以根据需要和爱好选择特定语言工 具实现组件的开发。 通过接口有效保证了组件的复用性。在保证接口一致性的前提下,可以调换 组件、更新版本,也可以将组件应用在不同的系统中。 组件运行效率高、便于使用和管理。因为组件是二进制代码,以核心的商务 逻辑计算任务必须由组件来负责组件之间是相互分离和独立的。利用MTS 或COM+对组件管理更加方便。 ActiveX 技术 ActiveX是遵循COM/DCOM 规程 煤矿测量规程下载煤矿测量规程下载配电网检修规程下载地籍调查规程pdf稳定性研究规程下载 而开发的用于INTERNET的一种对象链接与嵌入技术(OLE)。 COM是应OLE设计者的需求而诞生的。其基本的出发点是想让某个软件通过一个通用的机构为另一个软件提供服务。 在VB中使用的ActiveX部件有四种:ActiveX 控件、ActiveX文档、 ActiveX DLL和ActiveX EXE。 ActiveX 控件 制作过程 新建工程时选择新建“ActiveX 控件”,如图1所示 ,打开后出现 UserControl对象的设计控件界面,如图2所示。这类工程没有窗体,只有 一个UserControl对象。这个对象和窗体类似,但是没有边界。 已有的控件可以象在标准窗体中一样把它们放置到UserControl对象中。还 可以设置那些在设计时可以修改的属性,或着对它们的事件进行编码 在UserControl1对象上添加可能得到的各种对象。 编写程序代码。 参考类的创建,为控件添加属性、事件和方法。 如果需要,可以为控件建立属性页。 建立一个标准的EXE工程测试所建立的ActiveX 控件。 编译成OCX文件发布。 演示“图片浏览器”控件为实例 AxtiveX 代码部件 ActiveX 代码部件最初被认作一个OLE自动化服务器,它提供了一个可重用对象的库。一个代码部件可以包括一个专用的金融计算方面的函数库,或者包括为多个应用程序公用的用户界面元素,如自定义对话框。代码部件中的对象可以作为我们应用程序中的一个进程运行,这样可以实现对对象的快速访问。 在Visual Basic中可以把代码部件编译为进程内(如DLL)或进程外(如EXE)两种类型,同时提供了工程模板来创建这二种类型的部件。 创建一个ActiveX DLL 双击如图“新建工程”对话框中的“ActiveX DLL”图标。 这样就打开一个类模块Class1,把这个工程的名字改为DemoDLL。 然后在通用声明部分按照右方编写代码。 创建ActiveX DLL 在调用DLL库之前要进行注册。首先从“文件”菜单中选中“生成 DemoDLL.dll”选项,然后从“文件”菜单中选中“添加工程”子菜单项来添加 一个“标准EXE”工程,在“工程资源管理器”中单击窗体Form1并选中“工程”菜单中的“引用”对话框来选中前面创建的DemoDLL。 在调用DLL库之前要进行注册。首先从“文件”菜单中选中“生成DemoDLL.dll”选项,然后从“文件”菜单中选中“添加工程”子菜单项来添加一个“标准EXE”工程,在“工程资源管理器”中单击窗体Form1并选中“工程”菜单中的“引用”对话框来选中前面创建的DemoDLL。 用右键单击工程资源管理器中的标准EXE工程,然后从弹出菜单中选中“设置为启动”就可以运行这个程序了。 Private Sub cmdShow_Click() Dim obj As DemoDLL.Class1 Dim strmessage As String Set obj = New DemoDLL.Class1 obj.myname = Text1.Text obj.greet strmessage = obj.message MsgBox strmessage, , "DLL Demo" End Sub Instancing 属性 该属性值,确定能否在工程之外创建公共类的实例。如果可以,如何实现。 Instancing 属性设置如下: Private(缺省)私有。不允许其它应用程序访问关于类的类型库信 息,也不能创建该类的实例。私有对象只能在自己的部件中使用。 PublicNotCreatable。只有在自己的部件首先创建了对象的前提下, 其它应用程序才能应用此类的对象。不能用 CreateObject 函数或 New 操作符来创建类对象。 SingleUse。允许其它应用程序从这个类创建对象,但客户创建的该 类的每个对象都启动部件的一个新的实例。在 ActiveX DLL 工程 中是不允许的。 GlobalSingleUse。类似于 SingleUse ,除了此类的各种属性和方法 可以象简单的全局函数那样被调用。在 ActiveX DLL 工程中是不 允许的。 MultiUse。允许其它应用程序从这个类创建对象。部件的一个实例 可提供按此方式创建的任意数目的对象。 GlobalMultiUse。类似于 MultiUse,只附加了一点:这个类的各种 属性和方法可以象简单的全局函数那样被调用。该类的实例不需要 显式创建,因为它会自动创建。 每种属性值能够应用的工程类型
本文档为【初级VB教程资料】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_589748
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:87
分类:计算机考试
上传时间:2018-01-21
浏览量:42