全国计算机等级考试二级VB基础教程电子教案.ppt_第1页
全国计算机等级考试二级VB基础教程电子教案.ppt_第2页
全国计算机等级考试二级VB基础教程电子教案.ppt_第3页
全国计算机等级考试二级VB基础教程电子教案.ppt_第4页
全国计算机等级考试二级VB基础教程电子教案.ppt_第5页
已阅读5页,还剩192页未读 继续免费阅读

下载本文档

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

文档简介

VisualBasic程序设计基础教程电子教案 制作人 曾强聪 2004年4月 课程内容 第1章 第2章 第3章 第4章 第5章 第6章 第7章 第8章 第1章VisualBasic6 0基本知识 环境要求 安装步骤 集成开发环境 工程管理 程序编辑 程序调试 程序创建步骤 VisualBasic的特点 可视化 Visual的英文含义既是可视化 在可视化环境下创作前端界面也就如同摆放积木 面向对象 面向对象编程是建立在类的基础上的 其通过类的封装而使源程序更加便于维护 部件编程 部件编程则使软件创建如同组装一辆汽车 事件驱动 事件驱动则是指程序的执行路线是基于用户的操作步骤来确定的 环境要求 操作系统 NTServer4 0 NTWorkstation4 0 Windows95 或更高版本 CPU 486DX 66MHz或更高的处理器 内存 Windows95 98下要求24MB以上的内存 WindowsNT下要求32MB以上 磁盘空间 对于标准版或专业版 典型安装48MB 完全安装80MB 其他设备 CD ROM驱动器 鼠标或其他光标控制设备 安装步骤 1 启动安装程序 2 输入用户ID号 3 输入姓名 用户单位 4 选择安装路径 5 选择安装方式 有 典型安装 和 自定义安装 两种安装方式 集成开发环境 工程类型 1 标准EXE工程 用来创建Windows环境下的标准可执行程序文件 2 ActiveXDLL工程 用来创建能够与应用程序运行在同一进程内的ActiveXDLL部件 3 ActiveXEXE工程 用来创建在应用程序进程外工作的ActiveXEXE部件 4 ActiveX控件工程 用来创建可视开发环境下的前端界面元素 工程资源 程序工程由文件组成 主要文件类型有 工程文件 vbp 标准模块文件 bas 窗体的文件 frm 窗体的二进制数据文件 frx 类模块文件 cls 包含ActiveX控件的文件 ocx 工程管理 VisualBasic是以工程为单位创建程序的 其通过工程文件 vbp 获得工程信息 并通过 工程资源管理器 工程属性 窗口实现对程序工程的有效管理 程序编辑 在编辑程序时 经常用到的工具有 1 窗体设计器 其用于编辑用户界面 2 代码编辑器 其用于编辑源程序代码 3 属性窗口 其用于设置窗体或控件的属性值 程序调试 在调试程序时 最常使用的调试方法有 1 在程序中设置断点 进行中断调试 2 通过 立即窗口 进行数据测试 3 使程序逐条语句 或逐过程执行 进行单步调 程序创建步骤 当在VisualBasic6 0中创建应用程序时 一般需要经历以下基本步骤 1 分析程序问题 2 建立程序工程 3 设计用户界面 4 编写并调试程序代码 5 保存工程资源 6 对源程序进行编译 程序创建步骤 程序创建举例 考虑创建一个窗体程序 其用于商品销售时的累积计价 具体考虑是 1 添加 文本框控件 用于商品的单价 数量的输入 2 添加 命令按钮控件 并在其Click事件中添加 计价程序 用于商品计价 3 添加 标签控件 用于商品价值和商品总价的输出 集成开发环境 2 VisualBasic6 0集成开发环境由菜单 工具栏 工具箱 窗体设计器 属性窗口 工程管理器 代码编辑器 以及对象浏览器 窗体布局窗口 编程环境设置窗口等组成 它们是用户实施可视化开发所必须的成分 VisualBasic6 0菜单 菜单是在集成开发环境下发布命令的最基本手段 VisualBasic顶级菜单有 文件 编辑 视图 工程 格式 调试 运行 工具 外接程序 但菜单命令是通过子菜单中的子菜单项发出的 文件菜单 文件菜单主要用于建立 打开 添加 移去 保存工程和文件 包括 新建工程 打开工程 添加工程 移除工程 保存工程 工程另存为 保存文件 文件另存为 打印 打印设置 生成工程等子菜单项 编辑菜单 在对工程进行修改时 编辑菜单用于各种编辑操作 包括 撤消 重复 剪切 复制 粘贴 粘贴链接 删除 全选 查找 缩进 凸出 插入文件 属性 方法列表 快速信息 参数信息书签等子菜单项 视图菜单 视图菜单用于显示各种窗口及和窗口有关的操作 包括 代码窗口 对象窗口 定义 最后位置 对象浏览器 立即窗口 本地窗口 监视窗口 调用堆栈 工程资源管理器 属性窗口 窗体布局窗口 属性页 表 缩放 显示窗格 工具箱 调色板 工具栏等子菜单项 工程菜单 工程菜单用于为当前工程创建模块 作对象引用或提供各种设计器 包括 添加窗体 添加MDI窗体 添加模块 添加用户控件 添加属性页 添加用户文档 添加设计器 添加文件 移除 引用 部件 工程属性等子菜单项 格式菜单 格式菜单用于界面设计 能使界面中的控件规范排列 包括 对齐 统一尺寸 按网格调整大小 水平间距 垂直间距 在窗体中居中对开 顺序 锁定控件等子菜单项 调试菜单 调试菜单用于调试 监视程序 包括 逐语句 逐过程 跳出 运行到光标处 添加监视 编辑监视 快速监视 切换断点 清除所有断点 设置下一条语句 显示下一语句等子菜单项 运行菜单 查询菜单中各条菜单命令用于数据库表的查询及相关操作 所提供的各种查询设计工具 使用户能够通过可视化工具创建SQL语句 实现对数据库的查询 修改 工具菜单 工具菜单包括 添加过程 过程属性 菜单编辑器 选项 发布等子菜单项 外接程序菜单 外接程序菜单工程菜单用于为当前工程创建含 可视化数据管理器 外接程序管理器等子菜单项 VisualBasic6 0工具栏 工具栏的作用是可以通过其上面的图标按钮执行菜单命令 由此加快操作速度 VisualBasic能提供 编辑 标准 窗体编辑器 调试 等几个工具栏 用户也可以按自己的需要 自定义 工具栏 可以通过 视图 工具栏 菜单项下的子菜单项选取它们 VisualBasic各种工具栏中最常用的是 标准工具栏 VisualBasic6 0工具箱 工具箱是VisualBasic用于为开发提供控件的面板 通过它可以往设计中的窗体设置各种控件 除了VisualBasic内置控件之外 用户还可以通过菜单 工程 部件 打开 部件 对话框 从中能添加控件 设计器或可插入对象到工具箱中 也可以引用已加载的控件工程 第2章数据类型及操作 常量 变量 基本数据类型 数组 枚举类型 运算符 标识符命名规则 自定义类型 常量 常量即是用标识符来表示数值或字符串 由此可以提高源代码的可读性和可维护性 常量有两种来源 1 系统常量 其由VisualBasic或引用的对象提供 2 用户自定义常量 其需要用Const语句来声明 定义常量 用户自定义常量在使用前需要定义 由此使该标识符能够被程序识别 其语法是 Public Private Const常量名 As类型 常量表达式例如 ConstPI 3 14159265358979ConstMaxPlanetsAsInteger 9 使用常量 常量在被定义之后 就可以在代码中作为数据使用 例如 ConstMaxPlanetsAsInteger 9ConstPeopleAsInteger 19StaticSolarSystem 1ToMaxPlanets IfWorldPop PeopleThenExitSub 变量 变量用来等待处理的临时存储数据 可以把变量看作内存中存放未知值的所在处 变量有名字和数据类型 在使用之前需要声明 声明变量 声明变量就是事先将变量通知程序 由此使变量的使用合法 语法 Dim Private Public Static变量名 As类型 例如 DimIAsIntegerPrivateYourNameAsString BillsPaidAsCurrencyPublicTest Amount JAsInteger 变量范围 变量范围是指变量能够在多大的范围内被访问到 可以根据变量范围将变量分成以下三类 1 过程级变量 2 模块级变量 3 公用变量 过程级变量 过程级变量也叫局部变量 其在过程内声明 并且只有在声明它们的过程内才能被识别 过程级变量只能用Dim或Static关键字来声明 例如 DimintTempAsIntegerStaticintPermanentAsInteger用Dim声明的变量是动态变量 而用Static声明的变量则是静态变量 模块级变量 模块级变量在模块顶部的声明段用Private或Dim关键字声明 并且所在模块的所有过程都可使用该变量 例如 PrivateintTempAsInteger 公用变量 公用变量在模块的声明段使用Public关键字声明 其可以被应用程序的所有过程 例如 PublicintTempAsInteger 基本数据类型 所有变量都具有数据类型 以决定能够存储哪种数据 除变量外 数据类型也用于其他场合 如在给对象属性赋值时 这个值就有数据类型 函数的参数也有数据类型 事实上 在VisualBasic中 凡是涉及数据就与数据类型有关 包括 变量 常量 数组 以及函数 过程中的参数 等等 数值型数据 VisualBasic支持以下几种数值型数据 Integer 整型 Long 长整型 Single 单精度浮点型 Double 双精度浮点型 Currency 货币型 另外 Byte 字节型 也可用于数值计算 所有数值变量都可相互赋值 在将浮点数赋予整数之前 VisualBasic将浮点数的小数部分四舍五入到整数 String数据类型 String型变量用于存储字符串 例如 DimS1AsString DimS2AsString 10S1 Database S2 Database 上述变量中 S1是一个可变长度的String变量 随着对其赋予新数据 它的长度可增可减 而S2则是具有固定长度String型变量 Boolean数据类型 Boolean是逻辑型变量 其值只能是True False Boolean的缺省值为False Date数据类型 用于存储Date和Time值 例如 DimSomeDateAsDateSomeDate 1980 03 16 SomeDate 3 6 9313 20 Object数据类型 Object变量采用32位 4个字节 地址来存储对象 该地址可用于引用应用程序中的对象 例如 DimobjDbAsObjectSetobjDb OpenDatabase c Vb5 Biblio mdb Variant数据类型 Variant型是VisualBasic的缺省数据类型 能够存储所有类型的数据 例如 DimSomeValueSomeValue 17 SomeValue SomeValue 15SomeValue U SomeValue 数组 数组使用相同名字引用一系列变量 并用数字 索引 来识别它们 语法 Dim Private Public Static数组名 下界To 上界 As数据类型 一个数组中的所有元素具有相同的数据类型 使用数组 例如 DimSums 101To120 AsStringDimX 20 AsInteger Y 10 5To10 AsLongSums 110 ABCDEF X 0 100Y 0 8 1000 枚举类型 枚举类型提供了方便的方法处理名称与常数数值的相互关联 声明枚举类型的语法是 Public Private Enum类型名 EndEnum 枚举类型 PublicEnumDaysSundayMondayTuesdayWednesdayThursdayFridaySaturdayEndEnum 例如 可以为跟星期相关联的一组整数常数 声明一个枚举类型 然后在代码中使用星期的名称而不使用其整数数值 自定义类型 自定义数据类型是由一些基本类型的数据元素构成的结合体 声明自定义类型的语法是 Private Public Type自定义类型名元素As类型 元素As类型 EndType 自定义类型 例如 PrivateTypeStuRecordNameAsStringBirthdayAsDateOthersAsVariantEndTypeDimmyRecordAsStuRecordmyRecord Name 杨明 myRecord Birthday 1970 06 18 标识符来命名 在VisualBasic中 常量 变量 数组 过程 函数 类等 都依靠标识符来命名 但命名必须遵循一定的规则 其具体规则有 1 标识符由字母 A Z a z 数字 0 9 或下化线 组成 2 长度不能超过255个字符 3 自定义的标识符不能和VisualBasic中的运算符 语句 以及系统已有的函数 过程名等关键字同名 运算符 程序中对数据的基本加工 是依靠运算符实现的 在VisualBasic中运算符的类型有 赋值运算符 算术运算符 比较运算符 连接运算符 逻辑运算符 赋值运算符 VisualBasic中的赋值运算符 用来给变量 数组或对象的属性赋值 即把运算符右边的内容赋给运算符左边的变量 语法格式 变量 表达式 算术运算符 用来进行算术运算 有 加 减 乘 除 整除 Mod 求模 乘方 等运算符 比较运算符 比较运算符包括 大于 大于或等于 不等于 和 等于 用来反映两个数值或字符串表达式之间的关系 关系成立 返回True 真 关系不成立 返回False 假 两个表达式中若有Null 则返回Null 连接运算符 运算符都能用于进行两个字符串的连接 但 运算符强制两个表达式按字符串连接 尽管被连接的表达式不是字符串也是如此 而 运算符则较复杂 当两个表达式都是字符串时按字符串连接 否则视具体情况会有不同结果 在进行字符串连接时一般使用 运算符 逻辑运算符 逻辑运算符包括 Not 非 And 与 Or 或 Xor 异或 Equ 逻辑等于 和Imp 逻辑蕴涵 用于表达两个逻辑表达式之间的关系 在进行逻辑运算时 只要参入运算的表达式中有一个为Null 则将返回Null 运算符优先顺序 在表达式中 当运算符不止一种时 要先处理算术运算符 接着处理比较运算符 然后再处理逻辑运算符 算术运算符优先级由高至低是 指数运算 负数 乘法和除法 整数除法 求模运算 Mod 加法和减法 字符串连接 逻辑运算符优先级由高至低是 Not And Or Xor Eqv Imp 所有比较运算符的优先顺序都相同 自定义数据类型 在模块的声明部分可以使用Type语句建立自定义数据类型 语法格式 Private Public Type自定义类型名元素As类型 EndType 动态数组 1 创建动态数组的步骤 第一步是声明动态数组 其和声明固定大小的数组类似 但给数组附以一个空维数表 例如 DimDynArray 第二步是用ReDim语句在程序执行过程中给数组指定维数和分配实际的元素个数 例如 ReDimDynArray 4to12 动态数组 2 值得注意的是 ReDim语句与Dim语句 Static语句不同 ReDim语句是一个可执行语句 通过在应用程序中执行ReDim语句 给维数和元素个数待定的数组指定维数和元素个数 在程序中还可以使用变量设置动态数组的边界 例如 ReDimDynArray X Y 第3章程序结构 程序流程控制 模块概念 过程与函数 常用内置函数 程序出错处理 过程参数传递方法 程序流程控制 程序的基本运行方式是自顶向下地顺序执行各条语句 被称做顺序结构 对于简单的问题 依靠顺序结构就可以完成任务 但对于稍微复杂一点的问题 单纯依靠顺序结构也许就不够了 而必须在程序中加入更多的程序流程控制 程序流程的控制是通过一定的控制结构来实现的 包括 分支结构 循环结构 并可以进行控制结构嵌套 另外 也可以使用Goto语句来控制程序流程 分支结构 分支结构的作用是使程序依照条件而走不同的支路 VisualBasic支持的分支结构有 If ThenIf Then ElseSelectCase程序往往根据需要而选择合适的分支结构 If Then语句 用If Then结构可以有条件地执行其结构内的一条或多条语句 If条件表达式Then一条语句或 If条件表达式Then多条语句EndIf 可以使用If Then Else语句建立多个分支流程 并根据条件选择其中一个分支 语法结构 If条件1Then 语句块1 ElseIf条件2Then 语句块2 Else 语句块n EndIf If Then Else语句 SelectCase语句 SelectCase是用于实现多重选择 其作用与If Then Else语句类似 但主要用于只有一个条件 并且条件值为离散值的分支选择 语法结构是 SelectCase测试条件 Case表达式1 语句块1 Case表达式2 语句块2 CaseElse 语句块n EndSelect 循环结构 循环的作用是允许某个程序段被重复执行 VisualBasic支持的循环结构有 Do LoopFor NextForEach Next程序往往根据需要而选择合适的循环结构 Do Loop循环 Do Loop语句是通过计算条件值以决定是否继续执行 而产生循环效果 Do Loop语句有几种演变形式 形式一 DoWhile条件表达式语句块Loop形式二 DoUntil条件表达式语句块Loop Do Loop循环 形式三 Do语句块LoopWhile条件表达式形式四 Do语句块LoopUntil条件表达式 For Next循环 在知道要执行多少次时 则可以使用For Next循环 与Do循环不同 For循环使用一个叫做计数器的变量 每重复一次循环之后 计数器变量的值就会增加或者减少 For循环的语法如下 For计数器 初始值To终止值 Step增量 语句块Next 计数器 其中 参数 计数器 初始值 终止值和增量都必须是数值型的变量 ForEach Next循环 ForEach Next循环与For Next循环类似 但它是以对象集合中的每一个元素作为重复依据的 而不是按次数重复 如果不知道一个集合有多少元素 ForEach Next循环非常有用 语法格式 ForEach元素In集合语句块Next元素 控制结构嵌套 控制结构嵌套就是把一个控制结构放入到另一个控制结构之内 例如 在For Next循环块中放入If Then 块 在VisualBasic中 控制结构的嵌套层数没有限制 Goto语句 GoTo是无条件转向语句 能够无条件地转移到过程内指定的行 语法格式是 GoToline其中 参数line为行标签或行号 由于GoTo语句是非结构化流程控制的遗留物 容易破坏程序结构 因此要求尽量少用 模块概念 模块概念诞生于结构化程序设计方法 结构化设计的基本思路是通过将复杂问题按照功能成分进行有效地分解 使大问题转化为小问题 由此使得问题简化 便于解决 模块即是被分解出来的并具有一定功能特征的程序块或代码集 实际应用中 根据对程序问题的分解程度 模块可大可小 它可以被理解为所建程序系统中的一个子程序系统 也可以是子程序系统内一个涉及多项任务的功能块 或者是功能程序块内的一个函数 过程 模块概念 VisualBasic程序结构是以模块为单位构造的 其基本模块以文件形式保存 例如 标准模块 窗体模块 标准模块 窗体模块中包含有 过程 函数等内容 可以把过程 函数看作为单元级模块 它们是VB最小的模块单位 标准模块文件的扩展名是 BAS 它是一个包含许多过程 函数等单元模块的仓库 窗体模块的文件扩展名是 FRM 它被用来构造前端用户界面的 通过在窗体上放置控件 可以获得界面的可视化设计 当通过VisualBasic创建应用程序时 首先需要建立标准模块 窗体模块等文件级模块 然后在其内接着建立过程 函数等单元级模块 过程与函数 在VisualBasic中 过程是构建程序逻辑部件的最小单元成分 使用过程编程至少有两大好处 其一 可以将程序划分成更小的逻辑单元 这有利于简化程序 其二 过程可以供多处调用 这有利于代码重用 在VisualBasic中使用的过程有 Sub过程 不返回值 称做通用过程或子过程 Function过程 返回值 称做函数过程 另外 窗体 控件等 还可以提供事件过程 通用过程 通用过程由用户根据需要自主建立 其作用是可以把需要完成一定功能的代码放在过程 供诸多功能操作调用 由此提高代码利用率 并使其更便于维护 定义通用过程的语法是 Private Public Static Sub过程名 形式参数列表 语句块EndSub 过程参数 过程的参数类似于变量声明 它表明在调用过程时 需要传递进来的数据的个数及其类型 例如 PrivateSubAbut XAsString YAsInteger Z 语句块EndSub 调用过程 调用过程的语法 Call过程名 实际参数列表 或 过程名实际参数列表其中 实际参数列表 是需要往被调用过程传递的具体数据 因此 其数据类型需要和被调用过程的形式参数保持一致 实际参数可以是常量 变量 数组 或复杂表达式 但无论是什么都必须有确定的值 函数过程 通过Function语句创建的函数过程可以返回一个值到调用过程处 函数过程的语法是 Function函数名 形式参数列表 As类型 语句块EndFunction函数过程需要返回的值的类型由As子句设置 函数过程中返回值 在函数过程内 可以通过以下语句将值返回 函数名 表达式例如 FunctionHypotenuse AAsInteger BAsInteger AsStringHypotenuse Sqr A 2 B 2 EndFunction 调用函数过程 把函数看作一个数 可以放在赋值号右端 例如 Tx1 MyFunc 5 用做参数 例如 Tx2 MyFunc MyFunc 5 事件过程 窗体 控件的某个事件的发生时 会自动调用它的该事件过程 因此 事件过程往往是由用户事件触发 控件的事件过程名 由控件的实际名字 下划线和事件名组合而成 例如 一个名为cmdPlay的命令按钮被单击时所调用的事件过程是 cmdPlay Click 窗体也有事件 但其事件过程命名规则却和一般控件有所不同 窗体事件名是 词汇 Form 下划线和事件名的组合 例如 窗体单击时所调用的事件过程是 Form Click 通用 函数过程和事件过程的关系 过程参数传递方法 1 按值传递参数按值传递参数时 所传递的是实际参数的值 这时实际参数所在内存地址处所存储的数值传给了被调用过程的形式参数 这时 实参 形参分别有不同的内存地址 如果在被调用过程中改变了这个参数值 则所作变动只会到形参 不会影响实参 通过关键字ByVal可以声明按值传递的参数 过程参数传递方法 2 按地址传递参数按地址传递参数时 所传递的是实际参数的地址 这时的实参与形参具有相同的内存地址 因此 当按地址传递参数时 对形式参数所做的改变 也将随之反映到实际参数上来 按地址传递参数在VisualBasic中是缺省的 并可以通过关键字ByRef明确声明参数是按地址传递 常用内置函数 除了建立函数过程外 VisualBasic还提供了丰富的内置函数可用于程序设计 包括 数学函数 字符串函数 判断函数 转换函数等方面的函数 数学函数 数学函数主要用来完成数学运算 常用的有 1 Sin x 返回X的正弦值 X的单位为弧度 2 Cos x 返回X的余弦值 X的单位为弧度 3 Tan x 返回X的正切值 X的单位为弧度 4 Atan x 返回X的反正切值 返回值单位为弧度 5 Log x 返回X的自然对数 6 Exp x 返回以e为底的X的指数值 数学函数 7 Sqr x 返回参数X的平方根值 8 Abs x 返回X的绝对值 9 Hex x 以字符串形式返回X的十六进制值 10 Oct x 以字符串形式返回X的八进制值 11 Rnd x 产生一个介于0 1之间的单精度随机数 12 Int x 去掉小数部分 返回整数 13 Fix x 去掉小数部分 返回整数 字符串函数 常用的字符串函数有 1 InStr 起始位置 字符串1 字符串2 比较类型 字符串2在字符串1中第一次出现的位置 2 InStrRev 字符串1 字符串2 起始位置 比较类型 与InStr 函数相似 只是从字符串1的后面开始向前查找 3 LTrim 字符串 去掉字符串左边的空白部分 4 Rtrim 字符串 去掉字符串右边的空白部分 5 Trim 字符串 去掉字符串的左右空格 6 Left 字符串 个数 取出字符串左边指定个数的字符 字符串函数 7 Right 字符串 个数 取出字符串右边指定个数的字符 8 Mid 字符串 起始位置 个数 取字符串由起始位置开始的指定个数的字符 9 Len 字符串或字符变量 计算字符长度 10 Ucase 字符串 将字符串的小写字母转换为大写字母 11 Lcase 字符串 将字符串的大写字母转换为小写字母 12 Space 个数 返回指定个数的空字符串 13 String 个数 字符 返回包含重复字符的字符串 判断函数 1 IsArray 变量名 判断变量是否为数组 2 IsDate 表达式 判断表达式是否为日期 3 IsEmpty 变量 判断变量是否已被初始化 4 IsNumeric 表达式 判断表达式是否为数字型 5 Iff 表达式 真部分 假部分 计算真假两部分的值 再计算表达式的值 若表达式为True 返回真部分的值 否则 返回假部分的值 转换函数 转换函数用来实现不同类型数据之间的转换 1 Str 数值表达式 把数值转换为字符串 2 Val 字符串 把字符串转换为数字数值 忽略字符串中的非数字字符 编程方法 VisualBasic具有结构化和面向对象两种编程特征 结构化编程 结构化编程是程序设计走向成熟的一个标志 非结构化的高级语言程序是把问题作为一个单一过程来处理的 但是 随着问题越来越复杂 程序规模逐步加大 以至求解问题的单一过程程序复杂度超出人所能够驾束的范围 结构化的基本思路是将问题进行有效分解 使大问题转化为小问题 而使问题简化 便于解决 模块是结构化设计中的一个基本概念 所谓模块既是具有一定的功能特性程序段落 而模块又表现出多层次特性 在VisualBasic中 标准程序文件 窗体文件是上层模块 而其内的过程 函数则是具有更细节功能特性的下层模块 因此 以完成某项功能为目标创建程序文件 窗体文件 并在其内建立过程 函数 也就成为了在VisualBasic环境下 按照结构化进行程序设计的基本方法 出错处理语句 1 OnError语句格式1 OnErrorGoTo行标号格式2 OnErrorResumeNext2 Resume语句Resume结束错误处理并重新执行产生错误的语句 ResumeNext结束错误处理并重新执行产生错误的语句的下一条语句 Resume行标号结束错误处理并在行标号指定的位置处恢复执行 第4章用户界面设计 窗体容器 控件元素 事件驱动 控件数组 设计菜单 创建工具栏 使用对话框 窗体 窗体是VisualBasic应用程序的基本构造模块 是运行应用程序时 用户进行交互操作的窗口或对话框 其固有成分是 图标 标题栏 控制菜单 控制按钮和工作区 容器 窗体属性 1 窗体的个性是通过其属性体现的 其可以在设计时通过 属性 窗口设置 也可以在运行时由代码来实现 窗体的常用属性是 1 Name 窗体的名称 2 Appearance 3D效果 3 BorderStyle 设置窗体边框样式 4 Caption 窗体标题 5 ControlBox 设置窗体 控制菜单 6 Enabled 对用户事件是否能作出反应 窗体属性 2 7 Height 高 Width 宽 窗体大小 8 Left 左 Top 顶 窗体位置 9 HelpContextID 帮助文件的上下文关联编号 10 Icon 设置窗体图标 11 MDIChild 设置窗体是否被作为MDI子窗体 12 Moveable 设置是否能移动一个窗体 13 StartupPosition 设置窗体启动位置 14 Visible 设置窗体是被显示还是被隐藏 窗体事件 事件的作用在于能够对用户的行为作出响应 窗体的常用事件有 1 Load事件 发生在窗体被装载时 2 Activate事件 当一个窗体变成活动窗体时 3 Deactivate事件 当改变当前窗体时 4 Unload事件 当卸载窗体时 5 Resize事件 当调整窗体的大小时 窗体的方法 窗体的方法也就是窗体所具有的行动方式 窗体上常用的方法有 1 Show方法 用以显示窗体 2 Hide方法 用于隐藏窗体 但不能使其卸载 3 Move方法 用以移动窗体到一定的坐标位置 4 Refresh方法 强制全部重绘窗体及上面的控件 控件 控件是建立VisualBasic应用程序的基本元素 应该讲 可视化设计就是通过控件实现的 能够用于VisualBasic的控件数量众多 一般将其分为两个方面 内部固有控件 ActiveX控件 用户可以通过 工具箱 获取各种控件 内部控件 内部控件是包含在VisualBasic系统内 可以直接使用的控件 因此具有相对较好的运行性能 常用的内部控件有 命令按钮 文本框 标签 框架 列表框 组合框 复选框 选项按钮 图片框 定时器 数据控件等 CommandButton 命令按钮 当用户需要交互式地控制应用程序的时候 最简便的方法就是给用户提供一个 命令按钮 命令按钮的作用是 在用户单击它时 将会激发它的Click事件 因此 将代码写入命令按钮的Click事件过程 通过用户单击就可以执行相关操作 命令按钮的常用属性有 Cancel属性用于设置按钮为取消按钮 Caption属性用于设置在命令按钮上显示的文本 Style属性设置命令按钮的外观 TextBox 文本框 TextBox 文本框 控件一般是用来接收或显示输入输出信息 可用于编辑文本 经常使用的文本框属性有 Text属性用于设置显示的文本内容 MaxLength属性用于设置文本框中输入字符串的长度限制 MultiLine属性用于设置文本框是否以多行方式显示文本 PasswordChar属性用于设置是否显示用户键入的字符 ScrollBars属性用于设置文本框是否有垂直或水平滚动条 Label 标签 Label 标签 控件是专门用来显示文本的 因此用户不能对标签内的文本进行编辑 一般被用作标题名 通常用标签来标注本身不具有Caption属性的控件 例如 可用Label控件为文本框 列表框 组合框等控件添加描述性的标签 标签常用的属性有 Caption属性缺省属性 设置标签中显示的文本内容 AutoSize属性设置控件是否能自动调整以显示所有的内容 WordWrap属性该属性设置控件是否扩大以显示标题文字 Frame 框架 Frame 框架 控件是一个容器 框架的作用是能够把其他的控件组织在一起形成控件组 这样 当框架移动 隐藏时 其内的控件组也相应移动 隐藏 框架的常用属性有 Caption属性设置框架标题 使用户了解框架的用途 Enabled属性设置框架是否有效 Visible属性设置框架是否可见 ListBox 列表框 1 ListBox 列表框 控件用于显示项目列表 用户可以从列表框中的一系列选项中选择一个或多个选项 List属性设置列表框中包含的项 Columns属性设置是水平滚动还是垂直滚动 MultiSelect属性设置是否能够做多个选择 ListIndex属性当前所选择元素的下标 ListCount属性列表中全部元素的个数 Sorted属性设置按字母顺序排列项目 ListBox 列表框 2 列表框经常用到的操作有 1 添加项目 列表框 AddItemitem index 例如 List1 AddItem 王平 2 删除项目 列表框 RemoveItemindex例如 List1 RemoveItem03 获得列表项目内容 列表框 List index 例如 Text1 Text List1 List 2 4 用ListIndex属性判断项目位置 5 用ListCount属性返回项目数 ComboBox 组合框 ComboBox 组合框 控件将文本框和列表框的功能结合在一起 有了这个控件 用户可通过在组合框中输入文本来选定项目 也可从列表中选定项目 在使用方式上 组合框具有和列表框相似的特征 组合框的特点是可由Style属性设置三种组合样式 CheckBox 复选框 CheckBox 复选框 控件通常用于提供Yes No或True False的逻辑选择 复选框通过Value属性指示其所处的状态 无论何时 当用户单击复选框时都将触发其Click事件 OptionButton 选项按钮 选项按钮被用来做从多个可选项中选择一项的操作 选项按钮和复选框控件看起来相似 因此 可以把复选框中的操作方法用到选项按钮上来 它们之间的区别是 选项按钮一般用于单项选择 而复选框则可以用于多项选择 PictureBox 图片框 图片框是用来显示图形的 但同时它又可以作为其它控件的容器 在做容器使用时 图片框和Frame控件类似 图片框经常用到的属性是 Picture属性用于设置要加载的图片 AutoSize属性设置图片框是否按图片大小自动调整 Timer 定时器 定时器是一个响应时间的控件 它们独立于用户 编程后可用来在一定的时间间隔中周期性地执行某项操作 定时器有两个关键属性 Enabled属性当该属性为True时 定时器处于工作状态 而当Enabled被设置为False时 它就会暂停操作而处于待命状态 因此 定时器的Enabled属性并不同于其它对象的Enabled属性 Interval属性定时器周期性事件之间的时间间隔 毫秒数 Data 数据 控件 Data控件用于在程序中进行数据库连接 并可以把数据库中的信息通过窗体上的数据识别控件显示 编辑和更新 Data控件是依靠属性来获取对数据的连接的 在进行连接时其关键属性有 Connect属性设置有待连接的数据库类型 DatabaseName属性设置连接的数据库文件或目录名称 RecordSource属性设置需要访问的数据库表的名称 ActiveX控件 ActiveX控件是外部控件 因此其存在形式不同于和VisualBasic融合在一起的内部控件 它们是以扩展名为 ocx的文件形式存在于VisualBasic系统之外 只在需要时才将其添加到工具箱中 ActiveX控件是对VisualBasic内部控件集合的扩充 例如 ADOData控件 它是Data控件的功能扩充 可使VisualBasic具有更强的数据访问能力 应该讲 VisualBasic的诸多强大功能正是依靠ActiveX控件获得的 经常使用的ActiveX控件有 ADOData 数据组合 数据列表 DataGrid 公共对话框 RichTextBox等 ADOData 在使用ADOData控件之前需要在 部件 对话框中 选择 MicrosoftADODataControl 选项 将其引入到工具箱 如同Data控件 ADOData控件也是通过属性实现了对数据源的连接 其用于连接的关键属性是 ConnectionString属性设置数据源连接方式 RecordSource属性设置记录源类型 组成 DataCombo DataList控件 为了使用DataCombo和DataList控件 需要在 部件 对话框中 选择 MicrosoftDataListControls 选项 DataCombo和DataList控件与标准列表框 组合框控件极为相似 其不同在于DataCombo DataList控件具有更强的数据绑定能力 DataCombo DataList控件能实现两方面的数据绑定 其一方面 可以通过DataSource DataField属性绑定到其将产生影响的目标数据的某个字段 另一方面 还可以通过RowSource ListField属性绑定到其列表所需数据的某个字段 DataGrid 要用DataGrid控件 需要在 部件 对话框中 选择 MicrosoftDataGridControl 到工具箱 DataGrid控件是一种类似于电子数据表的绑定控件 可以显示一系列行和列来表示记录集合的记录和字段 DataGrid控件数据访问功能极强 但使用却非常简单 在设计时只需要设置了它的DataSource属性 则其就会用数据源的记录集来自动填充该表格 和自动设置该控件的列标头 CommonDialog 公共对话框 要使用公共对话框 需要在 部件 对话框中 选择 MicrosoftCommonDialogControl 到工具箱 公共对话框控件提供一组标准的操作对话框 进行诸如打开和保存文件 设置打印选项 以及选择颜色和字体等操作 RichTextBox 要使用RichTextBox控件 需要在 部件 对话框中 选择 MicrosoftRichTextBoxControl 到工具箱中 RichTextBox控件和标准文本框类似 标准TextBox控件用到的所有属性 事件和方法 RichTextBox控件几乎都能支持 例如MaxLength MultiLine ScrollBars SelLength SelStart和SelText RichTextBox控件能以rtf格式和普通ASCII文本格式这两种形式打开和保存文件 可以使用控件的方法 LoadFile和SaveFile 打开和保存文件 控件数组 控件数组是一组具有共同名称和类型的控件集合 其内每个控件称做控件元素 各元素之间通过用于索引的Index属性相互区别 其最大索引值为32767 通过控件数组还可以使若干个相同类型的控件共享代码 控件数组名称为Command1的命令按钮组的Click事件 其事件过程格式是 PrivateSubCommand1 Click IndexAsInteger EndSub 事件概念 在VisualBasic中 事件是一种可以被程序响应的变动 并可以被理解为一个活动单位 例如 用户单击了某个按钮 某个窗体的外观发生了变化 被展现在窗体上的记录集的指针发生了移动 等等 这些都可称之为事件 程序的事件触发器如同程序的感觉器官 可以使其对外界进行感应 而程序的事件过程则使程序具有了对外界的反应能力 事件驱动就是以事件为基本活动单位 按照操作规程编写事件过程 并由此有顺序地安排程序的执行流程 事件类型 VisualBasic中可能发生的事件有两种类型 用户触发事件 这种事件相当于按了电视遥控器的某个按钮 当按下频道按钮时 就会触发一个可以改变电视频道的程序 其由用户控制 在VisualBasic中 如 Click事件 KeyPress事件都属于这种类型 系统环境事件 系统环境事件是由VisualBasic系统或程序控制的事件 例如 窗体的Load Activate Unload QueryUnload事件 时钟控件的Timer事件 编写事件过程 每一种控件所能识别的事件可以从代码窗口中的下拉列表中看出来 当从控件列表框和事件列表框中选择确定的对象和事件后 VisualBasic将自动产生该对象事件的过程框架 常见用户触发事件 Click DblClick事件 当在一个对象上单击鼠标按钮或按Enter键时 会发生Click事件 如果双击鼠标按钮则会发生DblClick事件 MouseDown MouseUP和MouseMove事件 都是对操作鼠标的响应 分别在按下鼠标键时 松开鼠标键时或鼠标指针移到新的位置时发生的 GotFocus LostFocus事件 当对象获得焦点时产生GotFocus事件 当对象失去焦点时产生LostFocus事件 KeyPress KeyDown和KeyUp事件 是对用户键盘操作的响应 当用户按下和松开一个ANSI键时会发生KeyPress事件 KeyDown和KeyUp事件提供了最低级的键盘响应 当焦点在某个对象上时 则按下键盘将触发该对象的KeyDown事件 松开按键则会触发KeyUp事件 Change事件 当一个控件的内容发生改变时会被引发 事件的顺序 1 大部分的控件都能响应诸如鼠标事件 键盘事件等 而这些事件往往不是单独发生的 他们之间有许多关联性 当一个动作会激发多个事件 而在其多个事件中都建立了代码时 就可能造成程序的冲突 因此必须弄清多个事件的激活顺序 从而保证程序的正确执行 事件的顺序 2 当Click事件和DblClick事件过程中都有代码时 只会响应Click事件 当单击鼠标时 除了产生Click事件以外还可产生MouseDown和MouseUp事件 这三种事件发生的顺序根据控件的不同而不同 按下键盘上的键时 一般来说 键盘事件按照以下顺序发生 KeyDown KeyPress 和KeyUp 设计菜单 菜单能够有效改善用户界面 它是用户界面设计中一个非常重要的内容 菜单具有多种不同的形式 其中 标准下拉菜单 弹出式菜单是最常见的菜单形式 标准下拉菜单 标准下拉菜单的构成包括 菜单栏 菜单标题 菜单列表 菜单项等成分 它们按照层次关系合理组织 标准下拉菜单的操作特点是 当单击一个菜单标题 如 文件 后 包含菜单项目的列表就被拉下来 菜单属性 VisualBasic中的菜单也是对象 菜单中各个成分都可以被当作为控件对象 并具有和命令按钮相似的属性 其主要属性有 Name属性必须设置的菜单对象标识符 Caption属性菜单对象标题 Index属性菜单控件数组中元素的索引标识号 Checked属性设置是否在菜单项旁出现复选标记 Enabled属性设置菜单对象是否有效 Visible属性设置菜单对象是否可见 用菜单编辑器创建菜单 在VisualBasic环境下可以通过菜单编辑器建立菜单 菜单编辑器中的控件列表框列出当前窗体的所有菜单控件 通过单击 插入 按钮可以在现有的控件之间增加一个菜单控件 该控件会在菜单控件列表框中显示 弹出式菜单 弹出式菜单是独立于菜单栏而显示在窗体上的浮动菜单 在弹出式菜单上显示的项目取决于按下鼠标右键时指针所处的位置 因而 弹出式菜单也被称为上下文菜单 弹出式菜单实质上既是下拉菜单中某个菜单标题下的菜单项列表 只是激活方式不同而已 为了显示弹出式菜单 可使用PopupMenu方法 该方法使用语法如下 object PopupMenumenuname flags x y boldcommand 创建工具栏 1 一般情况下 工具栏是用来配合菜单 工具栏具有菜单所缺少的图形化的外观 而且提供了比菜单更快速的访问方式 因此 利用工具栏与应用程序中最常用的菜单命令建立联系 由此可提高应用程序的用户操作速度 为便于创建工具栏 VisualBasic的专业版与企业版专门提供了用于制作工具栏的ToolBar控件 创建工具栏 2 使用ToolBar控件创建工具栏的步骤如下 1 引入控件集 在 部件 对话框中 选择 MicrosoftCommonControls6 0 把ToolBar ImageList等控件引入到工具箱 2 加入控件 从工具箱选取ToolBar ImageList控件到设计窗体 3 向ImageList控件置入合适的图象 4 建立ImageList与Toolbar之间的关联 5 在Toolbar中建立按钮 使用对话框 对

温馨提示

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

评论

0/150

提交评论