




已阅读5页,还剩133页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
泰山学院刘国林 VB程序设计 目录 第一章VB程序设计概述第二章简单的VB程序设计第三章VB语言基础第四章赋值与输入输出第五章选择结构程序设计第六章循环结构程序设计第七章数组第八章过程第九章变量与过程的作用域第十章文件管理第十一章数据库功能 第一章VisualBasic程序设计概述 1 1VB简介1 2VB运行环境 安装和启动1 3集成开发环境 返回目录 1 1VB简介 何谓VisualBasic VB是微软公司出品的在BASIC语言的基础上发展起来的面向对象的可视化编程语言 Visual 指的是开发图形用户界面 GUI 的方法 不需编写大量代码去描述界面元素的外观和位置 而只要把预先建立的对象add到屏幕上的一点即可 Basic 指的是BASIC BeginnersAll PurposeSymbolicInstructionCode 语言 一种在计算技术发展历史上应用得最为广泛的语言 VB提供了三种版本 学习版 专业版和企业版 以满足不同层次的开发人员的需要 1 1VB简介 VisualBasic的特点面向对象的可视化的设计工具事件驱动的编程机制易学易用的应用程序集成开发环境结构化的程序设计语言强大的数据库操纵功能Active技术开放的网络功能多个应用程序向导完备的Help联机帮助功能 1 2VB运行环境 安装和启动 运行环境 硬件 586以上处理器 16MB以上内存 100MB以上硬盘软件 Windows9X以上或WindowsNT安装启动 标题栏菜单栏工具栏窗体设计器工具箱 1 3VB6 0的集成开发环境 工程资源管理器窗口属性窗口窗体布局窗口代码窗口立即窗口 返回目录 第二章简单的VB程序设计 2 1VB可视化编程的基本概念2 2建立简单的应用程序2 3窗体和基本控件2 4工程的管理及环境的设置2 5制作安装盘2 6使用帮助系统 返回目录 2 1VB可视化编程的基本概念 2 1 1类和对象对象 封装好的数据和代码 对象具有各种属性 事件和方法 VB中的典型对象有窗体 控件 打印机等 属性 描述对象的性质和特征的参数 属性的设置 1 通过属性窗口 2 在程序代码中设置对象名 属性名 属性值 事件 能被对象识别并响应的动作 事件过程 对象在识别到某事件发生后将执行相应的过程 方法 对象可执行的动作和功能 类 创建对象实例的的模版 是同种对象的集合与抽象 它包含所创建对象的属性描述和行为特征的定义 通过类可以产生各种同类对象 例 form1 caption 我的第一个应用程序 例如 按钮对象的鼠标单击事件 command1 click 例 form1 show对象名 方法名 2 1VB可视化编程的基本概念 2 1 2对象的建立和编辑1 对象的建立2 对象的选定3 复制或删除对象4 对象的命名 2 1 3VB的控件VB的控件是预先定义好的 程序中可直接使用的对象 1 内部控件 工具箱中缺省控件即为内部控件 封装在VB的 EXE文件中 不可删除 2 ActiveX控件 单独保存为 ocx文件中 部分仅在专业版和企业版中提供 部分由第三方厂家提供 可向工具箱添加 删除 3 可插入对象如 包含公司雇员列表的工具箱Excel工作表对象 包含某工程计划信息的Project日历对象等 可添加到工具箱中当作控件使用 2 1VB可视化编程的基本概念 返回第二章 控件的布局1 选定多个控件 1 方矩形选择法 2 逐个选择法Ctrl2 统一控件的尺寸格式 统一尺寸3 调整水平和垂直间距格式 水平距离 垂直距离4 对齐控件格式 对齐5 使控件在窗体中水平或垂直居中格式 在窗体中居中对齐6 锁定控件布局格式 锁定控件 2 1VB可视化编程的基本概念 1 新建工程2 添加控件3 设置属性4 编写代码 2 2建立简单的应用程序 5 运行工程6 修改工程7 保存工程8 工程的编译 2 3窗体和基本控件 2 3 1基本属性Name 名称Caption 标题Height Width Top Left 控件的高度 宽度 控件在窗体中的位置Enabled 控件是否允许操作Visible 控件是否可见Font 控件的字体属性 有具体内容ForeColor 前景颜色BackColor 背景颜色BackStytle 背景样式BorderStyle 边框样式Alignment 控件的对齐方式AutoSize 控件是否可以自动调整大小WordWrap 在垂直或水平方向上缩放TabIndex 按Tab键时 焦点在各个控件移动的顺序 2 3 2窗体对象可用作定制应用程序界面的窗口 或用作从用户处收集信息的对话框 窗体可单独存在 也可是多文档界 MDI 中的一个文档 即一个子窗体 1 窗体的结构 有菜单 标题栏 最大化 还原 最小化 关闭按钮 边框 2 窗体的属性 基本属性 Name Height Width Top Left Font Enabled Visible ForeColor BackColor Image等 Caption 标题MaxButton MinButton 是否显示最大化 最小化Icon 图标Controlbox 是否显示控制菜单Picture 图片BorderStyle 边框风格WindowState 窗体状态为 正常 最小化 最大化 2 3窗体和基本控件 3 窗体的事件 Click DblClick Load1 Load事件 当窗体加载到内存时发生PrivateSubForm Load 常把初始化代码放在此处EndSub2 Resize事件 当窗体改变其尺寸时发生PrivateSubForm Resize 常在此处修改其它控件的尺寸EndSub 3 Unload事件 当窗体从内存卸载时发生PrivateSubForm Unload CancelAsInteger 在窗体卸载前做一些扫尾工作 如关闭文件 提示存盘等EndSub 参数 Cancel表示 是否放弃卸载 带进来时 0 表示可以卸载 在代码中将其0 表示放弃卸载 例 PrivateSubForm Unload CancelAsInteger IfMsgBox 你想退出吗 vbYesNo 退出 vbNoThenCancel TrueEndifEndSub 2 3窗体和基本控件 4 窗体的方法 Print Cls Move显示一个窗体FormX Show vbModal 没有vbModal表示以非模式方式显示一个窗体 带有vbModal表示以模式方式显示一个窗体 隐藏一个窗体FormX Hide隐藏窗体并不把窗体从内存中卸载 要卸载窗体需要使用语句 UnloadFormX或 UnLoadMe Me表示当前窗体 Print方法 Print 对象名称可以是窗体 图片框或打印机 若省略则为窗体 表达式列表是一个或多个表达式 可以是数值表达式 字符串 多个表达式之间用分隔符号 或分号 隔开 若句末无分隔符 则自动换行 对于表达式 先计算后输出 例 print Hello everybody Print name age ID Print liping 20 30 与Print有关的函数 1 Tab函数Tab 输出定位函数 2 Spc函数空格输出函数位置属性 currentX currentY 可将输出精确定位 清除方法cls 2 3窗体和基本控件 2 3 3标签1 属性 Name Caption Height Width Top Left Font Enabled Visible ForeColor BackColor AutoSize Alignment BorderStyle等 2 事件 Click DblClick Change 2 3窗体和基本控件 2 3 4文本框1 属性 基本属性 Name Height Width Top Left Font Enabled Visible Alignment等 Text 文本属性MaxLength 文本框可接收的字符数 Multiline 是否多行显示 ScrollBars 文本超出控制尺寸时是否加滚动条 Locked 文本内容是否可被编辑 SelStart SelLength SelText 运行时控制文本框的插入点和选择行为 PasswordChar 密码框 与MaxLength配合使用 2 3窗体和基本控件 2 事件 Change KeyPress LostFocus3 方法 SetFocus 将光标移到指定的文本框中 对象 SetFocus 2 3窗体和基本控件 2 3 5命令按钮1 属性 基本属性 Name Height Width Top Left Font Enabled Visible Index等 Caption 标题 设置快捷键退出 X Default 是否是窗体的默认命令按钮Cancel 取消功能Value 在程序中设置 检查按钮是否被按下 Style 显示样式Picture Style属性设置为1 该属性才能显示图形文件ToolTipText 工具提示属性 与Picture属性同时使用 2 3窗体和基本控件 2 事件 Click3 方法 Print 对象 Print Spc n Tab n 表达式列表 Cls 对象 ClsMove 对象 Move左边距离 上边距离 高度 返回第二章 2 4工程的管理及环境的设置 2 4 1工程 包括在VisualBasic应用程序开发中包括的所有的窗体 代码模块和定制控件的一个文件列表 以及在开发中选择的环境选项 由下列文件组成 2 4工程的管理及环境的设置 2 4 2创建 打开和保存工程在 文件 菜单中2 4 3添加 删除和保存文件2 4 4环境设置1 编辑器 选项卡 工具 选项 2 通用 选项卡 代码窗口在代码窗口编写代码时 VB具有以下特性 1 自动列出成员特性 2 自动显示快速信息 3 自动语法检查 4 一次查看一个过程 或查看程序中的全部过程 2 4工程的管理及环境的设置 返回二章 3 1编码基础3 2标准数据类型3 3常量和变量3 4运算符和表达式 常用内部函数 3 5基本语句3 6数组3 7过程 第三章VB语言基础 返回目录 3 1编码基础 编写代码书写规则 VB代码不区分大小写语句书写自由注释有利于程序的维护和调试保留行号与标号 3 2标准数据类型 3 2 1数值型数据3 2 2字符型数据3 2 3布尔型数据3 2 4日期型数据3 2 5对象型数据3 2 6可变型数据3 2 7自定义类型 数值型数据具有表示范围 当数值超过规定的表示范围 就会溢出 系统会提示出错 3 2 1数值型数据 Numeric 3 2 2字符串型数据 String 字符数据用ASCII码 即美国信息交换标准码 表示 用 括起来 1 变长字符串 长度为字符串长度 例 Dimaasstringa 123 a 456789 2 定长字符串 长度为规定长度 对于定长字符串 当字符长度低于规定长度 即用空格填满 当字符长度多于规定长度 则截去多余的字符 例 Dimaasstring 10 3 2 3逻辑型数据 Boolean 占2个字节 只有2个值 真true和假false 当数值型数据转换为Boolean型数据时 非0的数据转换为true 0为fasle 当Boolean型数据转换为数值型数据时 true转换为 1 fasle为0 3 2 4日期型数据 Date 日期型数据占 个字节 表示范围从100 1 1 9999 12 31 日期型常数应用一对 把日期和时间值括起来 例 09 10 2000 或 2000 09 12 08 30 00AM 09 10 200008 30 00AM 例 DimmylabAsDatemylab 9 3 200111 35 00AM Time mylab 3 2 5对象型数据 Object 占 个字节 用于引用任何对象 对象型变量应用 语句赋值 例 DimmylabAsObjectSetmylab Form1 Label1mylab Caption 我的标签 3 2 6变体型数据 Variant 在程序未经声明就直接使用的变量称为变体型变量 变体型变量可用于存放任何类型的数据 3 2 7自定义类型 形式 Type自定义类型名元素名 下标 As类型名 元素名 下标 As类型名 EndType 返回三章 3 3变量和常量 变量代表内存中某指定的存储单元 变量的值在程序运行过程中可以随时变化的 变量具有名字和数据类型两种属性 名字 用于在程序中标识变量和使用变量的值数据类型 确定变量中能保存何种数据 VB中具有两种形式的变量 属性变量和内存变量属性变量是VB系统自动创建的 内存变量程序员根据需要创建的 3 3 1变量的命名规则 第一个字符必须是字母 不能包含有小数点 字符数不得超过255个字符 变量名在同一范围内必须是唯一的 注意 不能使用VB的关键字做变量名 变量名不能与过程名和符号常量名同名 3 3 2变量的声明 声明变量 Dim Static Public Private as as Dim Static Private声明的是过程级局部变量 Dim Private也可用于声明模块级私有变量 Public声明的是整个工程级的公共变量 Static声明的是静态变量 例 dimcountasintegerPrivatesumasdouble strnameasstringStaticaverageassinglePublicynasbooleanDimname1asstring 8 3 3 1变量的命名规则 练习 下列哪一个不是VB的合法变量名 1 ABCDEFG 2 P000000 3 89TWDDFF 4 XYZ 3 3 2变量的声明 使用声明语句声明变量后 VB系统会自动创建变量 并为变量赋予初值 通常数值型变量的初值为0 字符型变量和变体型变量的初值为空串 布尔型变量的初值为false 3 3 2变量的声明 强制显式声明Optionexplicit的作用范围仅限于语句所在模块 3 3 3常量 常量代表内存中指定的存储单元 常量的值在程序运行过程中是不变化的 直接常量符号常量 直接常量 在程序代码中以直接明显的形式给出的数据 为直接常量根据使用的数据类型 常量分为 字符串常量 需用双引号括起来 sdfdf 对于回车换行符 可用其ASCII码表示 例 text1 text text1 text Howareyou chr 13 chr 10 数值常量 5种数据类型 整数 长整数 定点数 浮点数和字节数 布尔常量 只有两种值 true false日期常量 用一对 将表示日期和时间的值括起来 表示日期型常量 例 30 09 2001 2001 09 30 Mar4200010 12 30 符号常量 为了改善程序的可读性和可维护性 通常使用符号常量 符号常量分为两种 内部常量和用户常量 系统内部的常量通常以vb开头 例如vbcr vblf vbyes vbno vbmodel vbmodeless等 2 用户定义的常量声明常量的语法 Public Private Const as 说明 1 常量名以字母开头 由字母 数字和下划线组成的1 255个字符构成 2 可由直接常量和运算符组成 也可包含前面已定义过的常量 但不能使用函数 符号常量 3 可用逗号分隔 在一行中声明多个常量 4 常量的有效范围 1 过程级常量 仅存在于过程内部 应在过程内部声明 2 模块级常量 对模块内的各个过程有效 应在模块的声明段对常量进行声明 例 privateconsta 20 3 全局常量 对整个应用程序有效 应在标准模块的声明段对常量进行声明 例 publicconsta 20 3 4运算符和表达式 3 4 1算术表达式1 算术运算符 mod 2 表达式的书写规则 1 每个符号占一格 并在同一行中 不允许有上下标 2 任何运算符均不得省略 例如 2x应表示为2 x 3 所有括号均用小括号 且必须成对 4 某些数学表达式中符号必须表示成VB认可得形式 例如 2 r应表示为2 pi r3 算术运算符的优先级 3 4表达式 3 4 2字符串表达式字符串表达式由字符串常量 字符串变量 字符串函数和字符串运算符组成 字符串运算符 和 均可将两字符串连接起来 可自动将非字符型数据转换为字符型数据后 再进行连接 不能进行自动转换 且容易与加号混淆 一般避免使用 3 4 3日期表达式日期型运算符只有两种 和 例 12 19 1999 11 16 1999 11 16 1999 33 12 19 1999 33 3 4 5常用的内部函数 VB中有两类函数内部函数 VB系统提供的标准函数用户自定义函数 用户根据需要定义的函数 数学函数字符串函数日期和时间函数格式输出函数随机数语句和函数数据类型转换函数 3 4 5常用的内部函数 数学函数 3 4 5常用的内部函数 数学函数举例 X Sgn 3 X 1X Sgn 3 X 1X Sgn 0 X 0X INT 3 4 X 4X INT 3 4 X 3X FIX 3 4 X 3X FIX 3 4 X 3X SIN 30 3 14 180 X 0 5X SQR 9 X 3X ABS 3 X 3 3 4 5常用的内部函数 字符串函数 3 4 5常用的内部函数 字符串函数举例 X Ltrim hello X hello X Rtrim hello X hello X trim hello X hello X left hello 2 X he X right hello 1 X o X mid hello 1 2 X he X instr hello ll X 3X string 5 X 3 4 5常用的内部函数 字符串函数举例 X Ucase hello X HELLO X Lcase HELLO X hello X STR 123 456 X 123 456 X VAL 123 456 X 123 456 3 4 5常用的内部函数 日期函数 3 4 5常用的内部函数 日期函数举例 Date 2002 03 12 Time 10 30 00 T now T 2002 03 1210 30 00 D day date d 12M month date m 3Y year date y 2002 3 4 5常用的内部函数 日期函数举例 H Hour time H 10mn minute time mn 30S second time s 0W Weekday time w 2 3 4 5常用的内部函数 随机函数 Randomize产生随机数的种子Rnd产生0 1之间的随机数例 产生100以内 不含100 的随机整数Int Rnd 100 例 产生两位的随机整数Int 10 Rnd 90 3 5基本语句 1程序语句VB程序中一行代码称为一条程序语句 建立程序语句必须遵从的构造规则称为语法 2语句的书写规则一行中的多条语句可用冒号 分隔 使用续行符 可将一条语句分为多行书写 3 5 1常用基本语句 Let 变量名 卸载对象unloadform1Unloadme结束程序End注释语句rem或 暂停语句Stop 返回 三类基本的程序结构 顺序 分支 重复人类日常的程序 都是顺序的 按时间 步骤先后 分支要求我们事先想好程序运行可能的几种情形 判别不同的条件 去做不同的程序段 计算机高速运行 我们可以把重复的程序段 安排为连续的循环 或者是需要时调用的子程序 顺序的程序就是 输入数据 处理数据 输出结果 3 5 2使用对话框 1 输入对话框变量 Inputbox 提示 标题 缺省 xpos ypos 应用举例2 消息对话框 Msgbox函数和语句 变量 Msgbox 提示 按钮 标题 变量返回的是1 7的值 应用举例 返回 按钮类型和返回值 VbOKOnly0VbOKCancel1VbAbortRetryIgnore2VbYesNoCancel3VbYesNo4VbRetryCancel5X16 32 48i64 返回值被选择的按钮 1VbOK 2VbCancel 3VbAbout 4VbRetry VbIgnore VbYes 7VbNo 1选择结构的概念2条件表达式3IF语句 3 5 3选择结构程序设计 返回目录 分支 1选择结构的概念 选择 分支 结构 根据所给定的条件决定从不同的分支中执行某一分支的相应操作 2条件表达式 条件表达式的值为真 true 和假 false 条件表达式分为关系表达式和布尔表达式 关系运算符和关系表达式布尔运算符和布尔表达式 关系运算符和关系表达式 关系运算符 对两个表达式的值进行比较 关系成立 返回true 否则返回false 关系运算符有 六种 其优先级相同 关系表达式由各种表达式和关系运算符组成 注意 1 浮点型 单精度和双精度 数据 不可用 进行比较 2 数学上的连续不等式 在VB中是非法的或者是具有不同意义的 布尔运算符和布尔表达式 布尔运算符有 and or not xor eqv imp六种 布尔表达式由关系表达式 布尔值和布尔运算符组成 应用举例 例1 计算2 3 1 4andnot6 8的值 例2 能判断闰年的布尔表达式 闰年的条件 年号 y 能被4整除 但不能被100整除 或者能被400整除 0或false ymod4 0andymod1000orymod400 0 3if语句 1 单分支结构的if语句iif函数2 双分支结构的if语句3 多分支结构的if语句4 SelectCase语句 情况语句 单分支结构的if语句 语法格式 IfThenEndIf或 IfTHEN Iif函数 语法格式 iif 应用举例 Y iif xmod2 奇数 偶数 双分支结构的if语句 语法格式 IfThenElseEndIf或 IfThenElse 多分支结构 If Then ElseIf 语法格式 IfThenElseIfThen Else语句块n 1 EndIf SelectCase语句 情况语句 SelectCase变量或表达式Case表达式列表1语句块1Case表达式列表2语句块2 CaseElse语句块n 1 EndSelect 1For循环语句2DoLoop循环语句3循环的嵌套 3 5 4循环结构程序设计 返回目录 循环结构 编写程序实现计算 1 2 3 4 n的值 前后两项之差都为1 是一个等差数列 Sum 0Sum sum 1Sum sum 2Sum sum 3 Sum sum n Sum sum i For循环语句 一 For Next循环 Sum 0Fori 1tonSum sum iNexti For循环变量 初值to终值Step循环变量增量 循环体 Next循环变量 For循环语句 思考实例 S 1 2 3 4 100 Dims i tassingleS 0Fori 1to99step2T i i 1 S s tNextiPrints i i 1 i从1到99 每次递增2 For循环语句 注意点 1 For语句与Next语句必须成对出现 而且它们当中的 循环变量 必须是同一个变量 2 当循环变量增量为正时 循环变量超过终值 是指循环变量的值大于终值 若为负 则是指循环变量的值小于终值 3 For Next循环次数的确定 n Int 终值 初值 增量 1 先判断后执行当型循环 DoLoop循环语句 二 Do Loop循环 格式1 Dowhile条件循环体Loop 先判断指定的条件是否为真 若条件为真 执行循环条件 条件为假时退出循环 思考 能否将S 1 2 3 n利用Do while语句完成 条件 循环体 i n S s ii i 1 将i的初值设为1 通过i i 1实现i的递增 Do Loop循环 格式2 Do循环体LoopUntil条件 先执行循环体 然后再检查条件是否成立 如果不成立就重复执行循环体 直到条件成立退出循环 如果我国人口每年以平均1 5 的速度增长 问多少年后我国人口达到或超过15亿 设现在人口为12 3亿 条件 循环体 P 15 将p的初值设为12 3 p p 1 0 015 n n 1 将n的初值设为0 DoLoop循环语句 Do Loop循环 格式2 Do循环体LoopUntil条件 P A Y N 先执行后判断直到型循环 DoLoop循环语句 循环的嵌套 在一个循环体内又包含了一个完整的循环结构 称为循环的嵌套 循环体内还可以嵌套 即可以再用FOR NEXT做两重 多重循环 注意 1 内循环变量与外循环变量不能同名 2 外循环必须完全包含内循环 不能交叉 3 5 5其他辅助控制语句 GoTo语句格式 GoTo 行号 标号 2 With语句经常使用某一对象的属性 方法时 就可以使用With语句 With语句可以使代码更简捷 并能提高运行速度 格式如下 With对象变量 EndWith 其他辅助控制语句 1数组的概念2静态数组及其声明3动态数组及其声明4控件数组 3 6数组 返回目录 数组的概念 数组是一组名称相同 具有相同数据类型的 按顺序排列的变量的集合 数组中的变量 称为数组元素或下标变量 数组的下标必须用括号括起来 X 2 不能写成x2 下标可以是常数 变量或表达式 但必须是整数 数组元素在上 下界内是连续分布的 缺省情况下 数组的下界为0 数组必须先声明后使用 声明数组名 类型 维数和数组大小 按声明时下标的个数确定数组的维数 只有一个下标的数组 为一维数组 如 a 0 具有两个下标的数组 为二维数组 如 a 0 0 以此类推 最多可达60维 静态数组及其声明 概念 在声明时确定了大小的数组称为静态数组 一维数组 Dim数组名 下标 As 下标 必须为常数 不能为表达式或变量 形式 下界To 上界 32768 32767 省略下界 默认0例 Dima 10 asinteger c 1to6 asinteger数组的使用 数组声明语句不仅能定义数组 为数组分配存储空间 而且还能对数组进行初始化 数值型元素的初值为0 字符型元素的初值为空 变体型元素初值为empty 对象型元素初值为nothing 引用数组元素 应在数组名后的括号中指明下标 在同一个过程中数组名不能与简单变量同名 多维数组 声明 Dim数组名 下标1 下标2 As 下标个数 必须为常数 决定了数组的维数 最多允许有60维 每一维的大小 上界 下界 1数组的大小 各维大小乘积例 Dimb 2 3 asdouble d 1to3 1to4 asstring说明 在VB的窗体层或标准模块层用OptionBase1语句可重新设定数组的下界为1 静态数组及其声明 例 计算某组10个同学的总分和平均分 PrivateSubCommand1 Click Dima 1To10 AsSingleDimiAsInteger totalAsSingle averageAsSingleFori 1To10a i Val InputBox 请输入第 i 个学生的成绩 输入成绩 total a i totalNextiaverage total 10Label1 Caption Label1 Caption Format total Label2 Caption Label2 Caption Format average EndSub 当声明一个大的静态数组时 该数据即长期占据主存 浪费系统资源 在声明动态数组时 未给出数组的大小 并未在内存中创建该数组 不占据空间 使用动态数组时 应先用Redim语句为数组分配元素个数 在使用动态数组的过程中 可运用Redim语句重新指定数组的元素个数 动态数组及其声明 声明动态数组 Public private dim static数组名 as类型分配元素个数 Redim preserve 数组名 as 注意 Redim是可执行语句 只能出现在过程中 使用关键字Preserve 可保留数组原来的内容 数组的维数由第一次出现的Redim语句指定 动态数组及其声明 控件数组 概念 控件数组为一组类型相同 功能相似的同名控件 不同的控件数组元素具有不同的下标 index 对控件数组元素执行同样的操作 将进入同一事件过程 可利用返回的index值来识别是由哪个控件引发的事件 使用控件数组 可实现在运行时动态产生新控件 一个控件数组至少有一个元素 元素数目最多为32767 控件数组的建立 1 在设计时建立以复制 粘贴形式产生 2 运行时添加控件数组Load方法添加 Unload方法删除 Foreach next 语法 Foreachin exitfor Next 成员为一个变体型变量 代表数组中的每一个元素 例题 Dima 100 bFori 1to100a i iNextiForeachbinas s bNextLabel2 caption s 3 7过程 将一个较大的程序划分为若干个只完成一个或多个特定功能的模块 这些模块通过执行一系列的语句来完成某个特定的操作过程 称之为 过程 使用过程编程有两大好处 1 过程可使程序划分成离散的逻辑单元 每个单元都比无过程的整个程序容易调试 2 一个程序中的过程 往往不必修改或只需稍作改动 便可以成为另一个程序的构件 返回目录 VB中的两类过程 内部过程 包括系统内部的函数过程 abs sqr 和事件过程 command1 click 用户自定义过程 用户根据自己的需要定义的 可供应用程序多次调用的过程 工具 添加过程 根据过程是否有返回值 VB中过程又分为 子程序过程 SUB 函数过程 FUNCTION 3 7 1子程序 SUB 过程 VB的子程序过程包括 事件过程 由VB自行声明 对用户发出的事件进行响应的程序段 事件过程是依附于窗体和控件的 通用过程 将一段需要反复使用的程序代码 编写为一个公共的过程 以供应用程序的各个过程调用 通用过程不与特定的事件过程联系 只能由别的过程调用 可存在于窗体模块 标准模块和类模块中 事件过程 控件的事件过程的声明PrivateSub 形参表 EndSub窗体的事件过程的声明PrivateSubForm 形参表 EndSubMDI窗体的事件过程的声明PrivateSubMDIForm 形参表 EndSub 通用过程 通用过程的声明 Private Public Static Sub 形参表 EndSubStatic声明的为静态过程 该过程中的局部变量只分配一次存储空间 且这些变量的值在整个程序运行期间都存在 可使用EXITSUB从过程中退出 过程体内 不可再定义过程 但可以调用其他过程 子过程的调用 Call子过程名 实参列表 或 子过程名 实参列表 注意 若实参要获得子过程的返回值 则实参只能是变量 不能是常量或表达式 也不能是控件名 过程举例 调用过程计算矩形面积PrivateSubForm DblClick Dima ba InputBox 请输入矩形长度 b InputBox 请输入矩形宽度 recareaa bEndSubSubrecarea a b area a bMsgBox 矩形的面积是 areaEndSub 过程举例 PrivateSubcommand1 Click Dima 10 asintegerRandomizeFori 1to10a I int rnd 100 text1 text1 a I NextISorta a Fori 1to10text2 text2 a I NextIEndSub 编写一个过程对整型数组a 的元素进行降序排序的子程序sorta 过程举例 Subsorta a asinteger Fori 1toUbound a 1forj i 1toUbound a Ifa j a i thenT a i A i a j A j tEndifNextjNextiEndSub 过程中形参的声明 形参 指明从调用过程传递给本过程的变量个数和类型 各形参之间用逗号分隔 形参的声明 optional byval byref paramarray as Optional 表示后续的参数是可选的Byval 按值传递Byref 按址传递 VB缺省为ByrefParamarray 指明最后这个参数为变体型Optional数组 不能与Optional Byval和Byref同时使用 只能用于最后一个参数 3 7 2Function过程 Function过程具有返回值 通常出现在过程中 Private Public Static Function 形参表 as 返回值EndFunction若没有as子句 则函数值为变体型 Function过程的调用 不能作为单独的语句加以调用 作为表达式或表达式中的一部分 再配合其他的语法成分构成语句 变量名 函数过程名 实参数列表 例 Functionf2f2 Followme EndFunction调用 Printf2 调用函数计算矩形面积PrivateSubForm DblClick Dima ba InputBox 请输入矩形长度 b InputBox 请输入矩形宽度 Msgbox 矩形的面积是 recarea a b EndSubFunctionrecarea aasinteger basinteger aslongrecarea a bEndFunction 函数举例 调用函数fact计算任意整数n的阶乘PrivateSubCommand1 Click Printfact 10 直接调用EndSubFunctionfact nasinteger aslongFact 1ForI 1tonFact fact INextiEndFunction 函数举例 3 7 3参数传递 过程与外界的数据传递有两种方式 通过非局部变量 模块级变量或全局变量 通过参数传递 实参传给行参 形参 在声明过程时的变量个数和类型 各形参之间用逗号分隔 形参可以是变量或数组 但不能是定长字符串变量 实参 是在调用Sub function时传递给Sub function过程的参数 实参可以是常量 表达式 变量或数组名 例 calltestsub 24 av abcd tt age subtestsub nasinteger x assingle naasrectype yasstring zasstring 3 7 3参数传递 参数的传递 按值传递 Byval 按址传递 Byref 按址传递 Byref 把实参的内存地址传递给行参 在子过程中对行参的任何操作变成了对实参的操作 实参的值随着行参的改变而改变 在按址传递时 实参必须是变量 按值传递 Byval 把实参的数值传递给行参 在子过程中对行参的操作 不会改变实参变量的值 按址传递的效率更高 但按值传递时 形参是个真正的局部变量 例 按址传递 Byref Subtryout xasinteger yasinteger x x 100y y 6print x x y yEndsubPrivatesubcommand1 click a 10 b 20tryouta bPrint a a b bEndsub 例 按值传递 Byval Subtryout byvalxasinteger byvalyasinteger x x 100y y 6print x x y yEndsubPrivatesubcommand1 click a 10 b 20tryouta bPrint a a b bEndsub 传递数组 使用数组作为参数传递时 传递是数组的起始地址 PrivateSubcommand1 Click Dima 10 asintegerRandomizeFori 1to10a i int rnd 100 text1 text1 a i NextiPrintfindmax a EndSub Functionfindmax a asinteger findmax a lbound a Fori Lbound a toUbound a Ifa i findmaxthent findmaxfindmax a i a i tEndifNextiEndSub 例 编写Function 求数组的最大值 3 7 4变量 过程的作用域 窗体模块 窗体模块的文件名为 frm包含窗体 控件的设置 事件过程 通用过程等 标准模块 标准模块包括公共的或模块级变量 常数 类型 外部过程和全局过程的全局声明或模块级声明 3 7 5递归 1 递归的概念 用自身的结构描述自己 如 2 递归子过程和递归函数允许在自身定义的内部调用自己的子过程和函数 称为递归子过程和递归函数 例 求fac n n 1命令按钮8列表框控件2标签控件8图片框控件3文本框9图象框控件4单选框控件10滚动条控件5复选框控件11定时器控件6框架7组合框控件 第四章常用控件与窗体 返回目录 4单选框 选项按钮 单选框控件可用来让用户在一组相关的选项中选择一项 因此单选框控件总是成组出现的 位于同一容器中的单选框控件被为一组 当这一组中某个单选框控件被选中时 这组中其他的单选框将自动处于不选中状态 Name属性 名称Caption属性 设置要显示的文字 可创建访问键快捷方式 Port1 Value属性 设置或读取复选框的值 Alt Pfalse unchecked未选中true checked选中Forecolor属性 设置文字颜色Alignment 设置文字的对齐方式Style属性 可选择标准或图形风格 5复选框 检查框 复选框控件可用来让用户进行 真 假 是 否 等选项的设置Name属性 名称Caption属性 设置要显示的文字Value属性 设置或读取复选框的值 0 unchecked未选中1 checked选中2 grayed禁止用户选择Forecolor属性 设置文字颜色Alignment 设置文字的对齐方式Style属性 可选择标准或图形风格 框架 Frame 框架控件可以用来对其他控件进行分组 以便用户识别 主要功能 让用户区分各个选项 追求一种视觉效果 作为容器控件 将多个选项按钮控件分组 属性 Caption 指明分组的主要功能 7组合框控件 组合框控件类似于文本框 但可提供一组预制的选项供用户选择 用户可从下拉式列表框中直接选择某项内容 也可在组合框中输入列表项中没有的内容
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025私营企业间的借款合同
- 物流产品组合协议
- 2025年反欺诈试题及答案
- 2025年法律文本翻译专业资格考试试卷及答案
- 2025年中国肉类协会肉类分割师认证考试专项练习含答案
- 政府会计准则制度实施能力考试(农业农村事业单位)经典考题含答案
- 地理土壤保水知识培训课件
- 2025年高级档案职称考试(档案管理学)经典试题及答案(陕西)
- 合作战略机遇协议
- 物业维修保险协议
- 塔吊拆除安全操作方案模板
- 普惠金融业务讲座
- 虚拟健康咨询接受度分析-洞察及研究
- 多发性周围神经病护理查房
- 巡检员质量培训
- GB/T 1303.1-1998环氧玻璃布层压板
- GB/T 11684-2003核仪器电磁环境条件与试验方法
- 家具厂精益改善推行报告课件
- 不锈钢棚施工方案
- 第2章 动车组检修工艺基础动车组维护与检修
- 筋针疗法牛君银培训课件
评论
0/150
提交评论