内容简介本书是以 Visual Basic 6.0 中文版为编程环境编写的高等学校计算机课程教材, 主要介绍了 VB 的基本概念 常用对象的属性 事件和方法 数据类型与表达式 程序的基本控制结构 数组 过程 用户界面设计 键盘 鼠标事件与绘图 文件和数据库应用等知识 本书内容由浅入深 循序渐进 注重

Size: px
Start display at page:

Download "内容简介本书是以 Visual Basic 6.0 中文版为编程环境编写的高等学校计算机课程教材, 主要介绍了 VB 的基本概念 常用对象的属性 事件和方法 数据类型与表达式 程序的基本控制结构 数组 过程 用户界面设计 键盘 鼠标事件与绘图 文件和数据库应用等知识 本书内容由浅入深 循序渐进 注重"

Transcription

1 普通高等教育 十二五 重点规划教材计算机基础教育系列 中国科学院教材建设专家委员会 十二五 规划教材 Visual Basic 程序设计教程 肖峰张燕妮主编 科学出版社职教技术出版中心 北 京

2 内容简介本书是以 Visual Basic 6.0 中文版为编程环境编写的高等学校计算机课程教材, 主要介绍了 VB 的基本概念 常用对象的属性 事件和方法 数据类型与表达式 程序的基本控制结构 数组 过程 用户界面设计 键盘 鼠标事件与绘图 文件和数据库应用等知识 本书内容由浅入深 循序渐进 注重基本知识与实际案例相结合, 有助于学生对知识点的理解和实际应用能力的提高 本书可作为高等院校非计算机专业学习 VB 程序设计的教材, 也可作为计算机等级考试二级 VB 程序设计考试人员的培训教材, 还可作为其他各类学校及自学者学习 VB 程序设计的参考书 图书在版编目 (CIP) 数据 Visual Basic 程序设计教程 / 肖峰, 张燕妮主编. 北京 : 科学出版社,2013 ( 普通高等教育 十二五 重点规划教材 计算机基础教育系列 ) ISBN Ⅰ. 1V Ⅱ. 1 肖 2 张 Ⅲ. 1BASIC 语言 - 程序设计 - 高等学校 - 教材 Ⅳ. 1TP312 中国版本图书馆 CIP 数据核字 (2013) 第 号责任编辑 : 陈晓萍宋丽 / 责任校对 : 耿耘责任印制 : 吕春珉 / 封面设计 : 北大彩印 科学出版社发行各地新华书店经销 * 2013 年 2 月第一版开本 : / 年 2 月第一次印刷印张 :19 1/4 字数 : 定价 :36.00 元 ( 如有印装质量问题, 我社负责调换 双青 ) 销售部电话 编辑部电话 版权所有, 侵权必究举报电话 : ; ;

3 本书编写人员 主编肖峰张燕妮副主编刘素丽李纪文杨松参编季晓玉王宏伟张特来肇恒宇刘芳杨文莲 科学出版社职教技术出版中心

4 前 言 Visual Basic( 以下简称 VB) 由于具有简单易学 操作方便 功能强大等特点, 已经成为高等院校学生学习程序设计的首选课程 本书是根据教育部高等学校计算机基础课程教学指导委员会的教学基本要求, 参照全国计算机等级考试大纲, 由几所高等院校具有多年教学经验和国家计算机二级考试辅导经验的一线教师共同编写的 本书共分 11 章, 主要内容包括 :VB 6.0 概述, 窗体和基本控件,VB 语言基础, VB 的基本控制结构, 数组, 常用控件, 过程, 用户界面设计, 鼠标 键盘与绘图, 文件, 数据库应用程序设计 本书注重基础知识和实际应用能力相结合, 由浅入深 循序渐进, 内容精简, 重点突出 本书建议的教学时数为 64~72 学时 与之相配套的 Visual Basic 程序设计实践教程 按照本书章节的教学内容安排了相应的上机实践内容及习题, 为学生上机实践提供指导和对学习效果进行自我检验 本书由肖峰 张燕妮任主编, 刘素丽 李纪文 杨松任副主编 具体编写分工是 : 第 1 章由李纪文编写, 第 2 章由肖峰编写, 第 3 章由季晓玉编写, 第 4 章由刘素丽编写, 第 5 章由王宏伟编写, 第 6 章由张特来编写, 第 7 章由张燕妮编写, 第 8 章由肇恒宇编写, 第 9 章由刘芳编写, 第 10 章由杨文莲编写, 第 11 章由杨松编写 本书在编写和出版过程中, 得到了学校各相关部门 兄弟院校的同仁的大力支持, 在此一并表示感谢 由于作者水平有限, 书中如有疏漏及不妥之处, 敬请读者批评指正 肖峰 2012 年 12 月

5 科学出版社职教技术出版中心

6 目 录 第 1 章 VB 6.0 概述 VB 简介 VB 的发展 VB 的特点 VB 的安装与应用 VB 的安装 VB 6.0 的应用 集成开发环境 主窗口 窗体设计器 工具箱 属性 窗口 工程资源管理器窗口 代码编辑窗口 窗体布局 窗口 立即 本地和监视窗口 VB 6.0 工程管理 VB 6.0 工程环境设置 VB 应用程序开发过程 简单的应用程序开发实例 应用程序开发过程 面向对象程序设计的基本概念 基本术语 属性 方法和事件之间的关系 事件驱动模型 19 本章小结 19 第 2 章窗体和基本控件 控件的常用属性 窗体 窗体的基本属性 窗体的常用事件 窗体的常用方法 标签 标签的常用属性 35

7 iv Visual Basic 程序设计教程 标签的常用方法 文本框 文本框的主要属性 文本框的常用事件 文本框的常用方法 命令按钮 命令按钮的常用属性 命令按钮的常用事件 焦点 42 本章小结 43 第 3 章 VB 语言基础 数据类型 标准数据类型 自定义数据类型 枚举类型 常量与变量 常量 变量 运算符与表达式 算术表达式 字符串表达式 关系表达式 逻辑表达式 运算符的优先顺序 常用的内部函数 数学函数 63 科学出版社职教技术出版中心 随机数函数 字符串函数 转换函数 日期与时间函数 格式输出函数 测试函数 VB 程序代码的书写规则 关键字和标识符 语句书写规则 综合应用 71 本章小结 73

8 目录 v 第 4 章 VB 的基本控制结构 算法与结构 算法 程序控制结构 顺序结构 赋值语句 注释语句 暂停语句 结束语句 输入 输出函数和语句 选择结构 If 语句 Select Case 语句 条件函数 循环结构 For 循环 While 循环 Do Loop 语句 多重循环 应用程序举例 105 本章小结 107 第 5 章数组 一维数组 一维数组的定义 一维数组的基本操作 二维数组 二维数组的定义 二维数组的使用 动态数组 动态数组的定义 数组的清除 控件数组 控件数组的定义 控件数组的建立 控件数组的应用举例 自定义数据类型 综合应用 130 本章小结 139 第 6 章常用控件 控件的分类及通用特性 控件的分类 140

9 vi Visual Basic 程序设计教程 控件的通用属性 图形控件 图片框控件 PictureBox 图像框控件 Image 图片的装入 删除和保存 形状控件 Shape 线条控件 Line 单选按钮 复选框 框架 单选按钮 复选框 框架 选择控件 列表框和组合框 列表框 组合框 时钟控件 滚动条 ActiveX 控件 ProgressBar 控件 UpDown 控件 171 本章小结 172 第 7 章过程 子过程的定义和调用 子过程的定义 子过程的调用 函数过程的定义和调用 函数过程的定义 函数过程的调用 参数 183 科学出版社职教技术出版中心 形参与实参 传值 传址 数组作为参数 可选参数 对象参数 变量和过程的作用域 变量作用域 过程作用域 递归 递归的概念 203

10 目录 vii 递归子过程和递归函数 203 本章小结 204 第 8 章用户界面设计 通用对话框 对话框概述 通用对话框的使用 综合应用 菜单设计 下拉式菜单 弹出式菜单 菜单设计的步骤 菜单编辑器 下拉式菜单的操作 弹出式菜单的操作 多重窗体 设置启动对象 综合应用 230 本章小结 232 第 9 章鼠标 键盘与绘图 鼠标 键盘 鼠标事件 键盘事件 绘图 坐标系统与颜色 绘图的属性 图形绘制方法 综合应用实例 253 本章小结 254 第 10 章文件 文件系统控件 文件操作 文件结构及分类 顺序访问模式 随机访问模式 二进制访问模式 文件操作语句及函数 269 本章小结 273

11 viii Visual Basic 程序设计教程 第 11 章数据库应用程序设计 数据库概述 相关术语 关系数据库 SQL 语言概述 SQL 语句的简单介绍 可视化数据管理器 ADO 数据库访问技术 ADO 对象 ADO 数据控件和数据绑定控件 表格控件 DataGrid 和 MSHFlexGrid 使用数据窗体向导 报表制作 293 本章小结 295 参考文献 296 科学出版社职教技术出版中心

12 第 1 章 VB 6.0 概述 本章要点 Visual Basic( 以下简称 VB)6.0 的发展及其特点 VB 6.0 的集成开发环境 VB 6.0 应用程序开发过程 面向对象程序设计的基本概念 1.1 VB 简介 VB 的发展 VB 是 Microsoft 公司于 1991 年推出的一种 Windows 应用程序开发工具, 它采用可视化的图形用户界面, 以结构化 BASIC 语言为基础, 以事件驱动为运行机制 Visual 指的就是采用可视化的开发图形用户界面 (Graphical User Interface,GUI) 的方法, 一般不需要编写大量代码去描述界面元素的外观和位置, 只要把需要的控件拖放到界面相应位置即可 BASIC 语言诞生于 20 世纪 60 年代, 英文全名是 Beginner s All-purpose Symbolic Instruction Code, 含意就是 适用于初学者的多功能符号指令码 BASIC 语言简单易学, 很快就流行起来 Microsoft 公司于 1991~1998 年陆续推出 VB 1.0 至 VB 6.0 版本 发展到 VB 6.0 时, VB 已经是能够提供强大的数据库管理功能, 支持 ActiveX 技术以及网络应用开发功能的完善程序开发工具 目前功能最为全面的是 VB.NET VB 提供了学习版 专业版和企业版, 用以满足不同的开发需要 学习版使编程人员很容易地开发 Windows 和 Windows NT 的应用程序 ; 专业版为专业编程人员提供了功能完备的开发工具 ; 企业版允许专业人员以小组的形式来创建分布式应用程序 VB 的特点 VB 是使用很广泛的编程语言之一, 它也被公认为是编程效率很高的一种编程方法 无论是开发功能强大 性能可靠的商务软件, 还是编写能处理实际问题的实用小程序, VB 都是最快速 最简便的选择 VB 具有以下特点 1. 可视化的编程在 VB 中, 系统提供大量的可视化控件, 程序员在设计时只需根据界面设计的要求, 直接在屏幕上 画 出各种图形对象, 并为每个控件设置属性 程序员的编程工作仅编写针对控件要完成的事件过程的代码, 因而程序设计的效率提高了许多

13 2 Visual Basic 程序设计教程 2. 面向对象的程序设计 VB 提供的可视化控件, 就是 对象 VB 应用面向对象的程序设计方法 (Object- Oriented Programming,OOP), 把程序和数据封装成一个整体, 作为一个对象, 不同的对 象赋予不同的功能 VB 自动产生这些图形对象的代码并封装起来 3. 事件驱动的编程机制 VB 通过事件来执行对象的操作 事件可以由用户操作触发, 也可以由来自操作系 统或其他应用程序的消息触发, 甚至由应用程序本身的消息触发 这些事件的顺序决定了代码执行的顺序, 因此应用程序每次运行时所经过的代码的路径都是不同的 4. 结构化程序设计语言 VB 具有丰富的数据类型 众多的内部函数, 采用模块化 结构化的程序设计机制, 结构清晰, 简单易学 5. 强大的数据库访问能力 VB 提供了强大的数据库管理和存取操作的能力 利用数据控件和数据库管理窗口, 能直接编辑和访问多种数据库 VB 提供了功能强大的 ADO(Active Database Object) 技术, 对本地数据库和大型网络数据库都可方便地操作 此外,VB 还支持动态数据交换, 支持对象链接与嵌入, 支持 ActiveX 技术, 同时还提供强大的网络功能, 并具备完备的联机帮助功能, 为用户学习提供了多种途径 VB 的安装 1. 安装要求 1.2 VB 的安装与应用 硬件要求 :586 以上 CPU,16MB 以上内存,100MB 以上硬盘空间等 软件要求 :Windows 95/98 以及更高版本的 Windows 系统 目前使用的计算机设备与系统软件已经远远超过上述要求了 2. 安装 科学出版社职教技术出版中心 从 CD 盘上安装 VB 系统, 请按照以下步骤执行 (1) 在 CD-ROM 驱动器中插入 CD 盘 (2) 安装程序将自动加载 Setup.exe 程序 (3) 选取 安装 Visual Basic (4) 依照屏幕上的安装提示, 逐一回答问题, 如接受协议 输入序列号等即可完成安装 另外,VB 6.0 的联机帮助文件使用 MSDN(Microsoft Developer Network Library)

14 第 1 章 VB 6.0 概述 3 文档的帮助方式, 与 VB 6.0 系统不在同一 CD 盘上, 而与 Visual Studio 6.0 产品的帮助集合在两张 CD 盘上, 在安装过程中系统会提示插入 MSDN 盘 VB 6.0 的应用 1. VB 6.0 的启动 VB 6.0 通常有以下三种启动方式 (1) 通过 开始 菜单 单击桌面上的 开始 菜单, 选择 程序, 然后打开 Microsoft Visual Studio 6.0 中文版 子菜单中的 Microsoft Visual Basic 6.0 中文版 程序, 即可启动 VB 6.0 (2) 利用快捷方式 若桌面上有 VB 6.0 的快捷图标, 双击快捷图标也可启动 VB 6.0 (3) 利用运行命令 可以在 开始 菜单的 运行 对话框中输入 C:\Program Files\Microsoft Visual Studio\VB 98\VB6.exe 命令来启动 VB VB 的退出退出 VB 有以下几种方式 (1) 利用文件菜单 选择 文件 菜单中的 退出 选项, 即可退出 VB 环境 (2) 利用快捷方式 按快捷键 Alt+F4, 即可退出 VB 环境 (3) 利用标题栏 用鼠标右击标题栏, 选择 关闭 选项, 即可退出 VB 环境 (4) 利用 关闭 按钮 单击窗口右上方 关闭 按钮, 即可退出 VB 环境 注意 : 用户如果没有保存文件, 退出 VB 环境时, 系统会提示用户保存文件 1.3 集成开发环境 主窗口 启动 VB 6.0 后, 显示如图 1.1 所示的 新建工程 对话框, 该对话框中有三个选项 卡, 即 新建 现存 和 最新 图 1.1 新建工程 对话框

15 4 Visual Basic 程序设计教程 新建 选项卡中列出了 13 种工程类型供选择, 如图 1.1 所示, 可以根据用户的需要选择工程类型, 默认的是 标准 EXE 工程 现存 选项卡中列出了可以选择和打开的现有工程 最新 选项卡列出了最近使用过的工程 在 新建 选项卡中选择新建一个 标准 EXE 工程, 就可以进入 VB 6.0 的主界面, 如图 1.2 所示, 在集成开发环境中可以进行程序设计 编辑 编译和调试等工作, 该界面内有多个独立的小窗口, 这些小窗口的大小和位置都可根据需要自行调节, 这些子窗口也可以被打开或关闭 图 1.2 VB 6.0 的主界面 VB 6.0 集成开发环境 (Integrated Developing Environment,IDE) 由以下元素组成 1. 标题栏 标题栏用于显示正在开发或调试的工程名和系统的工作状态 ( 设计态 运行态 中止态 ), 位于最上方 当标题栏显示 设计 状态时, 可以进行程序的设计 ; 当标题栏显示 运行 状态时, 用户可以看到程序运行的结果 ; 当标题栏显示 中止 状态时, 用户可以查看程序运行的中间结果, 如图 1.3 所示 科学出版社职教技术出版中心 图 1.3 标题栏 2. 菜单栏菜单栏用于显示所使用的 VB 6.0 命令 VB 6.0 标准菜单包括 13 个菜单项, 如图 1.4 所示 每个菜单项都有一个下拉菜单, 内含若干个菜单命令, 单击某个菜单项, 即可打开该菜单, 单击某个菜单中的某一菜单选项, 就执行相应的命令

16 第 1 章 VB 6.0 概述 5 图 1.4 菜单栏 (1) 文件 : 包含项目的打开 保存以及生成 EXE 文件等命令 (2) 编辑 : 包含复制 粘贴 撤销等命令 (3) 视图 : 包含关闭 打开各种窗口 工具条命令 (4) 窗口 : 包含窗口布局命令 (5) 帮助 : 包含帮助信息 (6) 工程 : 在项目中加入窗体 模块以及 Windows 对象和工具 (7) 格式 : 包含调整窗体中控件位置等命令 (8) 调试 : 各种与程序调试有关的命令 (9) 运行 : 启动 中断等命令 (10) 查询 图表 : 与数据库查询 图表有关的命令 (11) 工具 : 包含菜单编辑器 选项对话框 添加过程等命令 (12) 外接程序 : 包含可视数据管理器 ( 打开数据库管理系统 ) 外接程序管理器( 多种向导和设计器 ) 3. 工具栏 VB 提供了编辑 标准 窗体编辑器和调试四种工具栏, 用于快速访问常用命令 VB 集成开发环境中的默认工具栏是 标准 工具栏, 如图 1.5 所示 将鼠标指针在工具按钮上停几秒钟, 屏幕上将显示所指工具按钮的功能说明, 如表 1.1 所示 图 1.5 标准 工具栏 表 1.1 标准 工具栏中的常用工具按钮 按钮名称功能 添加 Standard EXE 工程 添加窗体 菜单编辑器 添加一个新工程, 相当于 文件 菜单中的 添加工程 命令 在工程中添加一个新窗体, 相当于 工程 菜单中的 添加窗体 命令 打开菜单编辑对话框, 相当于 工具 菜单中的 菜单编辑器 命令 打开工程 保存工程打开一个已有的工程或保存一个工程 剪切 复制 粘贴将选定内容剪切 复制到剪贴板及把剪贴板内容粘贴到当前插入位置 启动 中断 结束运行 暂停 结束一个应用程序的运行 工程资源管理器属性窗体布局工具箱 打开或切换至工程资源管理器窗口打开或切换至 属性 窗口打开或切换至 窗体布局 窗口打开或切换至 工具箱 窗口, 相当于 视图 菜单中的 工具箱 命令 要显示或隐藏某个工具栏, 可以选择 视图 菜单下的 工具栏 命令 要打开 关闭各种工具条, 同样在 视图 菜单上的 工具栏 的子菜单中选择 选择 自定义 命令, 可打开 自定义 对话框, 内有以下三个选项卡 (1) 工具栏 选项卡 : 用来指定显示哪个工具条 ; 更名 删除或生成新的工具条

17 6 Visual Basic 程序设计教程 (2) 命令 选项卡 : 包含主菜单选项和一列已选中选项的命令 (3) 选项 选项卡 : 可以指定所有工具条的常规选项 窗体设计器 窗体设计器用来设计应用程序的界面 启动 VB 后, 窗体设计器中自动出现一个名 为 Form1 的空白窗体, 可以在该窗体中添加控件 图形和图片等来创建所希望的外观, 窗体的外观设计好后, 从菜单中选择 文件 菜单上的 保存窗体 子菜单, 在 保存 对话框中给出合适的文件名 ( 注意扩展名 ), 并选择所需的保存位置, 单击 确定 按钮 需要再设计另一个窗体时, 单击工具栏上的 添加窗体 按钮即可 一个工程可包含若干个窗体, 每一个窗体必须有一个窗体名字即其 Name( 中文版中的 名称 ) 属性 建立窗体时默认名字为 Form1 Form2 等 在窗口中可添加各种对象并可直接观察程序运行时的界面, 体现出了 VB 的可视化编程思想 工具箱 工具箱是由一组控件按钮组成的, 用于设计时在窗体中放置控件 工具箱中的工具分为标准控件和 ActiveX 控件 启动 VB 后, 工具箱中只有标准控件 需要 ActiveX 控件时, 选择 工程 菜单中的 部件 命令, 弹出 部件 对话框, 然后在该对话框中选择要添加的控件将其添加到工具箱 或者在工具箱的空白处右击, 在弹出的快捷菜单中选择 部件 命令, 同样可以弹出 部件 对话框 当设计图形界面时, 比如需要用户输入文字的文本框 允许用户进行选择的单选按钮或复选框, 就用到了这些控件 除了默认的工具箱布局之外, 还可以通过在工具箱上单击右键, 在弹出的快捷菜单中选择 添加选项卡 命令, 并在 结果 选项卡中添加控件来创建自定义布局 工具箱上有 20 个标准控件图标, 如图 1.6 所示, 将这些控件放在窗体上, 生成应用程序的用户接口, 用以实现人机对话 如果工具箱窗口关闭了, 可以使用工具栏按钮或 视图 菜单中的 工具箱 命令来打开 科学出版社职教技术出版中心 图 1.6 工具箱

18 第 1 章 VB 6.0 概述 属性 窗口 属性 窗口中列出了选定的窗体或其他控件的属性名称和属性值, 如图 1.7 所示 VB 中通过改变属性来改变对象的特征, 如大小 标题或颜色等 图 1.7 属性 窗口 属性 窗口由以下几部分组成 (1) 标题栏 : 显示 属性 窗口名称 正在设置属性的对象名称及关闭按钮 (2) 对象列表框 : 在下拉列表中列出了当前窗体和当前窗体中各控件的名称及类型, 可查看并选择某一对象 (3) 属性排列方式 : 提供了 按字母序 和 按分类序 两种属性名称的显示方式 (4) 属性列表框 : 显示选中对象的属性, 左边为属性名, 右边为属性值 (5) 属性含义说明框 : 显示选中属性的功能说明 打开 属性 窗口的方法如下 (1) 按下 F4 键 (2) 单击 工具栏 中的 属性窗口 按钮 (3) 选中 视图 菜单中的 属性窗口 命令 (4) 右击对象在弹出的快捷菜单中选择 属性窗口 选项 工程资源管理器窗口工程资源管理器窗口用于浏览工程中所包含的窗体和模块, 如图 1.8 所示 在该窗口的标题栏下方从左至右有以下三个按钮 (1) 查看代码按钮 : 可以切换到 代码窗口, 查看和编辑代码 (2) 查看对象按钮 : 可以切换到 窗体窗口, 查看和编辑对象 (3) 文件夹切换按钮 : 折叠或展开对象文件夹中的项目列表 VB 把一个应用程序称为一个工程 (Project), 而一个工程又是各种类型的文件的集

19 8 Visual Basic 程序设计教程 合, 这些文件可以包括工程文件 (.vbp) 窗体文件(.frm) 标准模块文件(.bas) 类模块文件 (.cls) 资源文件(.res) ActiveX 文档 (.dob) ActiveX 控件 (.ocx) 用户控件文件 (.ctl) 属性页文件(.pag) 在创建一个工程时不需要将上述文件都包括进去, 但至少要包含两个文件, 即工程文件和窗体文件 打开工程资源管理器的方法如下 (1) 按 Ctrl+R 组合键 图 1.8 工程资源管理器 (2) 选择 视图 菜单中的 工程资源管理器 命令 (3) 在 工具栏 中单击 工程资源管理器 按钮 代码编辑窗口 显示和编辑代码的窗口, 应用程序中的每一个窗体或标准模块都有一个对应的代码 编辑窗口 如果想进入代码编辑窗口, 有如下几种方法 (1) 单击窗体中的对象, 在工程管理器中单击 查看代码 按钮 (2) 双击窗体或窗体上的控件 (3) 右击窗体, 在弹出的快捷菜单中选择 查看代码 命令 (4) 选择 视图 菜单中的 代码窗口 选项 代码编辑窗口如图 1.9 所示, 其中包含如下对象 科学出版社职教技术出版中心 图 1.9 代码编辑窗口

20 第 1 章 VB 6.0 概述 9 (1) 对象下拉列表框 在这里列出当前窗体及其上的所有控件的名字 其中 通用 表示该模块中的通用代码, 在此声明模块级变量或用户编写的自定义过程 (2) 事件下拉列表框 列出选中的对象的所有事件过程 其中, 声明 表示声明模块级变量 (3) 代码区 在这里编写程序代码 在对象下拉列表框中选好一个对象, 又在事件下拉列表框中选好一个事件过程名之后, 在代码区就自动生成一个事件过程模板 ( 过程的开头和结尾语句 ), 在头尾语句之间输入代码即可 (4) 拆分栏 拖动拆分栏即可把代码区分为上下两部分, 可以同时对代码的不同部分进行修改, 对照检查 (5) 过程查看 按钮 选中该按钮, 代码区中仅显示当前过程的代码 (6) 全模块查看 按钮 选中该按钮, 代码区中显示当前模块中所有过程代码 窗体布局 窗口 通过 窗体布局 窗口中调整各个窗体相对于屏幕的位置来决定程序运行时窗体显示的实际位置和几个窗体间的相对位置, 图 1.10 所示为 窗体布局 窗口 允许使用表示屏幕的小图像来布置应用程序中各窗体的位置 图 1.10 窗体布局 窗口 立即 本地和监视窗口立即 本地和监视窗口作为附加窗口是为调试应用程序提供的, 它们只在 IDE 之中运行应用程序时才有效 VB 6.0 工程管理 1. VB 工程的构成 VB 是以工程为单位管理用户的应用程序 用户每建立一个应用程序,VB 系统就根据应用程序的功能为此应用程序建立一系列的文件, 并将这些文件的有关信息保存在工程文件中, 每次保存工程时, 这些信息都要被更新 一个 VB 工程可以包括七种类型的文件 其中, 最常用的是窗体文件 标准模块文件 类模块文件 (1) 工程文件 (.vbp) 和工程组文件 (.vbg): 每个工程对应一个工程文件 对于一个较复杂的应用程序, 可以含有两个以上的工程文件, 这些工程文件组成一个工程组 选择 文件 菜单下的 添加工程 命令可以添加一个工程 (2) 窗体文件 (.frm): 每个窗体对应一个窗体文件 一个窗体文件由两部分组成, 一部分是作为用户界面的窗体 ; 另一部分是窗体和窗体中的对象执行的代码 选择 工程 菜单下的 添加窗体 命令可以添加一个窗体 (3) 窗体的二进制数据文件 (.frx): 若一个窗体中包括图片或图标等二进制信息, 则保存窗体文件.frm 的同时, 会产生一个与该窗体文件具有相同文件名的.frx 文件

21 10 Visual Basic 程序设计教程 (4) 标准模块文件 (.bas): 又称程序模块文件, 完全由代码组成 在标准模块的代码中, 可以声明全局变量, 可以定义函数过程和子程序过程 标准模块中的全局变量可以被工程中的其他模块调用 ; 而公共的过程可以被窗体模块的任何事件调用 选择 工程 菜单下 添加模块 命令可以添加一个标准模块 (5) 类模块文件 (.cls):vb 提供了大量预定义的类, 同时也允许用户根据需要定义自己的类 类模块文件中既包含代码又包含数据, 每个类模块定义了一个类, 可以在窗体模块中定义类的对象, 调用类模块中的过程 (6) 资源文件 (.res): 是一种可以同时存放文本 图片 声音等多种资源的纯文本文件, 可以使用简单的文本编辑器进行编辑 (7)ActiveX 控件文件 (.ocx): 可以添加到工具箱, 并在窗体中使用 2. 工程属性的设置打开 工程 菜单中 工程属性 对话框, 在此对话框中可以设置工程的属性 如果工程中包含多个窗体, 则可以指定启动对象 启动对象是工程运行时的入口点 在 通用 选项卡的 启动对象 列表框中指定运行时显示的第一个窗体, 单击 确定 按钮即可 VB 6.0 工程环境设置 1. 定制个性开发环境 VB 6.0 在设计上更加人性化与灵活, 用户可以根据个人的习惯设置自己的工作环境 设置个性化的环境的步骤为 : 选择 工具 菜单下的 选项 命令, 打开 选项 对话框, 如图 1.11 所示 科学出版社职教技术出版中心 图 1.11 选项 对话框在此对话框中, 有六个选项卡, 用户可根据自己的需要对各选项进行设置 1) 编辑器 选项卡 编辑器 选项卡可用于设置代码窗口和工程窗口的一些特殊功能 在 编辑器 选

22 第 1 章 VB 6.0 概述 11 项卡中可以进行如下设置 (1) 自动语法检测 若选中该复选项, 用户在代码窗口编程时, 每输入一条命令并按 Enter 键后, 系统立即自动对该行代码进行语法检查 系统一旦检测到语法错误, 就会弹出一个警告信息窗口, 提示编译错误 若不选中此项, 系统将不弹出警告信息窗口, 仅以红色显示错误代码行 (2) 要求变量声明 尽管 VB 允许使用没有声明的变量, 但其他语言一般都遵循先声明变量 再使用变量的原则 建议用户选中该复选项, 养成先声明后使用变量的良好习惯 若选中该复选项, 系统将在新建程序的模块文件顶部的通用声明段, 自动加入变量强制声明语句 Option Explicit 一旦在程序中使用未经声明的变量, 程序运行时系统将自动报错 (3) 自动列出成员 如果用户选中该复选项, 当用户在程序输入过程中输入控件名和句点后, 系统将自动列出该控件可用的属性和方法 用户只要在列表框选中所需的内容, 按空格键或用鼠标双击该内容, 则选中的内容将自动输入到光标的当前位置, 这将减少用户的输入量, 并大大增加了准确率 (4) 自动显示快速信息 若选中该复选项, 当用户输入程序时, 如要调用函数或过程名时, 系统将自动列出该函数或过程的参数信息, 以提示用户正确输入 2) 编辑器格式 选项卡 编辑器格式 选项卡可以设置编辑器上代码的字体 大小 颜色等参数 3) 通用 选项卡 通用 选项卡为当前的 VB 工程设置窗体网格信息 错误处理方式以及编译方式 4) 可连接的 选项卡 可连接的 选项卡用于设置是否连接各种窗口, 如立即窗口 本地窗口等 5) 环境 选项卡 环境 选项卡用于设置 VB 启动时的环境, 如是否提示创建工程 是否显示模板等 6) 高级 选项卡 高级 选项卡用于对 VB 环境进行一些高级设置 2. 为开发环境提供鼠标滚轮默认安装的 VB 6.0 不支持鼠标滚轮 可以到微软网站下载动态链接库来支持鼠标滚轮操作 需要添加的动态链接库文件名称为 VB6IDEMouseWheelAddin.dll, 将该文件复制到 C:\WINDOWS\system32\ 目录下 在 开始 菜单的 运行 对话框中输入如下命令 : regsvr32 VB6IDEMouseWheelAddin.dll 单击 确定 按钮进行注册 当弹出注册成功的对话框时, 说明注册成功 启动 VB 6.0, 单击 外接程序 菜单中的 外接程序管理 命令, 在弹出的对话框中选择 MouseWheel Fix 选项, 再选中 在启动中加载 和 加载 / 卸载 复选项, 单击 确定 按钮完成设置, 如图 1.12 所示

23 12 Visual Basic 程序设计教程 图 1.12 外接程序管理器 对话框 1.4 VB 应用程序开发过程 简单的应用程序开发实例 下面用一个简单的例子逐步介绍使用 VB 集成开发环境设计编写 VB 应用程序的步骤 和方法 例 1.1 制作一个简单的可以进行加 减 乘 除算术运算的小型计算器, 其界 面如图 1.13 所示 要求在前两个空框 ( 文本框 ) 中输入两个数值, 单击 加 减 乘 除 按钮中的一个, 则第三个空框 ( 文本框 ) 中显示运算的结果 ; 单击 清除 按钮, 则清除文本框中的内容 ; 单击 结束 按钮, 则结束程序的运行 步骤 : (1) 设计用户界面 图 1.13 计算器运行界面 1 启动 VB 环境, 选择 标准 EXE 选项, 单击 打开 命令, 进入 VB 主窗口 2 单击窗口左边工具箱中的 标签按钮, 分别在窗体上方添加三个标签 :Label1 Label2 Label3 3 单击窗口左边工具箱中的 文本框 按钮, 分别在窗体上添加三个文本框 : Text1 Text2 Text3 科学出版社职教技术出版中心

24 第 1 章 VB 6.0 概述 13 4 单击窗口左边工具箱中的 命令按钮, 分别在窗体上添加六个命令按钮, 即 Command1~Command6 5 单击某个控件, 对控件的位置和大小进行适当调整 (2) 设置各控件的属性 依次选中各个控件, 在窗口右部的 属性 窗口中设置各控件的属性, 如表 1.2 所示 表 1.2 各相关控件的属性设置 控件名称 属性名 属性值 说 明 Label1 Caption 第一个数 标签的标题 Label2 Caption 第二个数 标签的标题 Label3 Caption 运算结果 标签的标题 Text1 Text 空 Text2 Text 空 Text3 Text 空 Command1 Caption 加 按钮的标题 Command2 Caption 减 按钮的标题 Command3 Caption 乘 按钮的标题 Command4 Caption 除 按钮的标题 Command5 Caption 清除 按钮的标题 Command6 Caption 结束 按钮的标题 Form1 Caption 计算器 窗体的标题 (3) 在代码窗口书写程序代码 双击 Command1, 打开代码书写窗口, 编写程序代码, 如图 1.14 所示 图 1.14 编写 Command1 的代码 对于其他按钮, 也按照上述步骤操作, 编写程序代码如下 : Private Sub Command1_Click() Text3.Text = Val(Text1.Text)+ Val(Text2.Text) Private Sub Command2_Click() Text3.Text = Val(Text1.Text)- Val(Text2.Text) Private Sub Command3_Click() Text3.Text = Val(Text1.Text)* Val(Text2.Text) Private Sub Command4_Click()

25 14 Visual Basic 程序设计教程 Text3.Text = Val(Text1.Text)/ Val(Text2.Text) Private Sub Command5_Click() Text1.Text = "" Text2.Text = "" Text3.Text = "" Private Sub Command6_Click() End (4) 保存工程 选择 文件 菜单中的 保存工程 命令, 第一次弹出的对话框是 保存窗体, 默认窗体文件名称为 Form1.frm, 选择好保存路径, 确定保存窗体 接着弹出 的对话框是保存工程, 默认的工程文件名称为 工程 1.vbp, 将工程文件与窗体文件保 存在同一路径下 (5) 运行工程 按 F5 键或选择 运行 菜单下的 启动 命令或单击 运行 按钮, 运行程序, 即可得到如图 1.13 所示的运行结果, 在文本框中输入数据, 单击某个按 钮可产生相应的计算结果 应用程序开发过程 根据例 1.1 可知,VB 应用程序的开发步骤一般如下 1. 创建用户界面 1) 新建工程和窗体 启动 VB 6.0, 在 新建工程 对话框中选择新建一个 标准 EXE 工程 此时系统 会自动创建 工程 1 和一个默认的窗体 Form1, 以后的操作都在 Form1 上完成 2) 添加控件 在窗体上添加控件的方法有两种 方法 1: 双击工具箱中所需的控件图标, 在窗体上即出现一个默认大小的对象框, 用 户可在窗体中拖动鼠标对其进行缩放及移动操作 方法 2: 单击工具箱中相应的控件图标, 将鼠标移到窗体上, 此时鼠标光标变为 + 号, 将 + 号移到窗体适当位置, 按下鼠标左键向右下方拖动至所需大小后松开鼠标, 此时在窗体上生成一个指定大小的对象框 3) 调整对齐控件 窗体中的多个控件常需要进行对齐和调整, 如多个控件的对齐 控件的间距调整 统一大小 前后顺序的调整等 科学出版社职教技术出版中心 调整对齐控件的操作方法 : 先选定多个待调整的控件, 然后使用 格式 菜单中的 相应命令 ; 或者选择 视图 菜单中的 工具栏 选项, 选择 窗体编辑器 选项, 打开窗体编辑工具栏, 使用其中的工具对控件进行调整操作 同时选定多个对象的方法有两种

26 第 1 章 VB 6.0 概述 15 方法 1: 单击选中第一个控件, 然后按住 Shift 键或 Ctrl 键, 分别单击其他控件 方法 2: 与 Windows 下选定多个连续文件或文件夹相似, 在窗体空白处按下鼠标左键拖动光标, 将欲选定的对象包围在一虚框中然后释放鼠标左键即可 一旦成组选择控件, 被选择的控件就可以像单个控件一样进行移动 复制 删除, 还可以同时设置相同属性等 2. 设置界面上各个对象的属性窗体及控件创建好以后, 并没有显示出要求的程序界面, 如命令按钮上的文字 标签显示的内容等, 都需要通过修改属性才能实现 设置控件对象属性要先选中一个或多个控件, 然后修改相应属性值 VB 中设置或改变对象的属性有两种方法 方法 1: 在界面设计阶段, 可通过 属性 窗口的属性框直接设置对象的属性 方法 2: 在编码阶段, 可通过语句来实现属性的改变, 语句格式为 : 对象. 属性名 = 属性值 3. 编写对象响应事件的程序代码 VB 采用事件驱动机制, 完成用户界面建立, 并为各个对象设置了相应的属性后, 则要根据程序需要, 为了完成特定的功能, 为控件的某些事件编写代码 每个窗体有自己的代码窗口, 专门用于显示和编辑应用程序源代码 打开代码窗口后, 选择控件以及该控件要响应的事件, 进行代码编写 4. 调试并运行应用程序, 排除错误在 VB 中, 可以用两种方式运行程序, 即编译运行模式和解释运行模式 (1) 编译运行模式 选择 文件 菜单下的 生成工程 1.exe 命令后, 系统将读取程序中全部代码, 将其转换编译为机器代码, 并保存在扩展名为.exe 的可执行文件中, 以后可脱离 VB 环境独立执行 (2) 解释运行模式 选择 运行 菜单下的 启动 命令, 或按 F5 键, 或单击工具栏上的 启动 按钮, 系统读取事件激发的那段事件过程代码, 将其转换为机器代码, 边解释边执行该机器代码 由于转换后的机器代码不保存, 如需再次运行该程序, 必须再解释一次, 运行速度比编译运行模式慢 此方式一般在开发阶段调试程序时使用 5. 保存工程单击工具栏中 保存工程 按钮, 或选择 文件 菜单下的 保存工程 命令, 将先后弹出两个保存对话框, 第一个为 文件另存为 对话框, 用来保存窗体文件 ; 第二个为 工程另存为 对话框, 用来保存工程文件 在对话框中, 保存在 下拉列表框中显示的是文件的保存路径, 默认的文件保存路径为 C:\Program Files\Microsoft Visual Studio\VB 98, 如果想保存在新的路径下, 则应打开 保存在 下拉列表框, 选择新的保存路径

27 16 Visual Basic 程序设计教程 选择好保存路径后, 还要分别设置 文件名 和 保存类型, 如果不想使用默认文 件名, 可以键入新的文件名 但是, 文件的保存类型通常使用默认保存类型, 不可任意修改, 如 窗体文件 (*.frm) 工程文件 (*.vbp) 等 需要注意的是, 如果对已保存的程序进行了修改 ( 包括界面和代码 ), 需要再次保存程序, 可以单击工具栏中 保存工程 按钮, 但是此时将不会弹出保存对话框, 而是直接在原有文件上进行更新 如果要为程序保存副本, 需要选择 文件 菜单下的 工程另存为 和 XXX.frm 另存为 命令, 分别对工程和窗体文件进行另存为操作 6. 生成可执行文件 保存工程和窗体文件后, 在 VB 6.0 的集成环境中可以执行该程序, 但一旦脱离该集成环境, 程序就不能再执行了, 这就需要生成可执行文件 在 Windows 环境下无需任何编程环境, 只需双击该程序的 EXE 文件就可执行 要对该程序进行可执行文件生成, 选择 文件 菜单中的 生成工程 1.exe 选项, 弹出 生成工程 对话框, 在默认情况下, 该可执行文件的名称与工程名同名, 可根据用户的需求对名称作出相应更改, 最后将该 EXE 文件存储在硬盘的合适位置, 单击 确定 按钮就生成了该程序的可执行文件 这样, 用户只需双击计算机中的 EXE 文件就可运行该程序了, 或将该可执行文件复制到其他安装有 Windows 操作系统的计算机中, 也能直接执行 1.5 面向对象程序设计的基本概念 面向对象程序设计方法不同于标准的过程化程序设计 程序设计人员在进行面向对象的程序设计时, 不再是从代码的第一行一直编到最后一行, 而是考虑如何创建对象, 利用对象来简化程序设计, 提高代码的可重用性 对象之间的相互作用通过消息来实现 在 VB 6.0 集成环境中窗体 控件等都是对象, 对象可以由控件来创建 基本术语 1. 对象和类 科学出版社职教技术出版中心 对象是具有特殊性质 ( 属性 ) 和行为方式 ( 方法 ) 的实体, 在现实生活中到处可以见到, 如一辆汽车可看做一个对象, 汽车的型号 价格 外观等特性称为 属性, 汽车的启动 加速 减速等是汽车行为, 称为 方法 对象的概念是相对的, 根据观察者的角度可将对象分解和综合, 如汽车还可分解为车头 车尾, 也可分解为发动机 车轮等对象, 分解后的对象又都分别具有不同的属性和行为 类是具有共同抽象对象的集合, 在面向对象的程序设计中, 类是创建对象实例的模板, 它包含所创建对象的共同属性描述和共同行为特征的定义, 即对象是类的实例 例如, 各种各样的汽车可以看做一个汽车类, 具体到某一辆特定的汽车则称为汽车类的一个实例, 即一个对象 VB 中的类可分为两种 : 一种是由系统设计好, 可以直接使用的类 ; 另一种是由用户定义的类, 本书中重点介绍第一种 工具箱中的标准控件均为 VB 系统设计好的标准控

28 第 1 章 VB 6.0 概述 17 件类, 开发者在窗体上 画 一个控件的过程即为该控件类的实例化, 将控件类转换成了一个控件对象, 以后简称为控件 除了用户大量使用的窗体和控件对象外,VB 还提供了一些系统对象, 如打印机 (Printer) 剪贴板(Clipboard) 屏幕(Screen) 等, 在后面的章节中将涉及系统对象的使用 在面向对象程序设计中, 对象 是系统中基本的运行实体 建立一个对象后, 其操作是通过与该对象有关的属性 事件和方法来描述的 属性 事件和方法也称为对象的三要素 1) 对象的属性属性是对象中的数据, 是用来描述和反映对象特征的参数, 所有对象都有自己的属性 例如, 控件名称 (Name) 标题(Caption) 颜色(Color) 字体(FontName) 等属性决定了对象展现给用户的界面具有什么样的外观及功能 属性设置有两种方法 方法 1: 通过 属性 窗口设置对象的属性 设置属性时, 先在左侧栏中找到相应的属性名称, 然后修改右侧的属性值 方法 2: 在程序中用程序语句设置 格式 : 对象名. 属性名 = 属性值例如 : Label1.Caption= " 欢迎来到 VB 世界!" 则将标签 Label1 的标题属性值设置为 欢迎来到 VB 世界! 这两种方法都可以实现属性的修改, 但是又有区别 大多数属性在 属性 窗口中 修改以后, 可以在窗体中立刻看到控件状态的变化 而如果使用方法 2 在程序代码中用 语句实现, 则需要运行程序时属性设置才能生效 在一个程序中应该使用哪种方法设置属性需要根据实际情况考虑 但是需要注意的 是, 有些属性仅允许在 属性 窗口中设置, 如 Name 属性 而有些属性必须在程序代 码中利用语句进行设置, 如文本框的 SelStart SelLength 和 SelText 属性等 2) 对象的事件 事件 (Event) 是 VB 预先设置好的 能被对象识别的动作, 即发生在对象上的事情 比如 : 按钮的单击 Click 事件 键盘按下 KeyPress 事件等 在 VB 中事件的调用格式是 : Private Sub 对象名 _ 事件名 例如 : ( 事件内容 ) Private Sub Command1_Click() Command1.FontSize=20 ' 设置命令按钮的字体大小为 20 3) 对象的方法方法 (Method) 指的是控制对象动作行为的方式 它是对象本身内含的函数或过程

29 18 Visual Basic 程序设计教程 对象具有一些自己特定的方法 在 VB 里方法的调用格式是 : [ 对象.] 方法 [ 参数列表 ] 例如, 在 VB 中, 提供了一个名为 Print 的方法, 当把它用于不同的对象时, 可以在 不同的对象上输出信息, 下面的语句可以实现在对象名为 Form1 的窗体上显示字符串 Visual Basic 程序语言设计 Form1.Print "Visual Basic 程序语言设计 " 如果语句改为 : Printer.Print "Visual Basic 程序语言设计 " 执行时, 将在对象名为 Printer 的打印机上打印字符串 Visual Basic 程序语言设计 在调用方法时, 可以省略对象名 在这种情况下,VB 所调用的方法作为当前对象的方法, 一般把当前窗体 (Me) 作为当前对象 下面的三条语句, 执行时都将在当前窗体上显示字符串 Visual Basic 程序语言设计 Print "Visual Basic 程序语言设计 " Me.Print "Visual Basic 程序语言设计 " Form1.Print "Visual Basic 程序语言设计 " 2. 控件 VB 为用户预先定义好的, 在程序中能够直接使用的对象, 称之为控件 常见的控件有以下两种 1) 标准控件启动 VB 后, 标准控件 ( 也称为内部控件 ) 就出现在工具箱中, 既不能添加, 也不能删除 2)ActiveX 控件这类控件保存在.ocx 类型的文件中, 用于完成特定的动作 控件的命名 : 在一般情况下, 窗体和控件都有默认值, 如 Form1 Command1 Text1 等 在应用程序中使用约定的前缀, 可以提高程序的可读性 例如, 窗体对象前缀 :frm; 命令按钮对象前缀 :cmd; 文本框对象前缀 :txt 等 控件的值 : 为了使用方便,VB 为每个控件规定了一个默认属性, 在设置这样的属性时, 不必给出属性名, 通常把该属性称为控件的值 例如 : text1.text="default attributes" text1="default attributes" 上述两个语句的作用是相同的 属性 方法和事件之间的关系 科学出版社职教技术出版中心 VB 对象具有属性 方法和事件 属性是描述对象的数据 ; 方法告诉对象应做的事情 ; 事件是对象所发生的事情, 事件发生时可以编写代码进行处理

30 第 1 章 VB 6.0 概述 19 VB 的窗体和控件都具有自己的属性 方法和事件的对象 可以把属性看做一个对象的性质, 把方法看做对象的动作, 把事件看做对象的响应 在 VB 程序设计中, 基本的设计机制就是 : 改变对象的属性 使用对象的方法 为对象事件编写事件过程 程序设计时要做的工作就是决定应更改哪些属性 调用哪些方法 对哪些事件作出响应, 从而得到希望的外观和行为 事件驱动模型在 过程化 的应用程序中, 应用程序自身控制了执行哪一部分代码和按何种顺序执行代码 从第一行代码执行程序并按应用程序中预定的路径执行, 必要时调用过程 在事件驱动的应用程序中, 代码不是按照预定的路径执行, 而是在响应不同的事件时执行不同的代码片段 事件可以由用户操作触发 也可以由来自操作系统或其他应用程序的消息触发, 甚至由应用程序本身的消息触发 这些事件的发生顺序决定了代码执行的顺序, 因此应用程序每次运行时所经过的代码的路径可能都是不同的 因为事件发生的顺序是无法预测的, 所以在代码中必须对执行时的 各种状态 作一定的假设 当作出某些假设时 ( 例如, 在处理某一输入字段的过程之前, 该输入字段必须包含确定的值 ), 应该组织好应用程序的结构, 以确保该假设始终有效 在执行中代码也可以触发事件 例如, 在程序中改变文本框中的文本将引发文本框的 Change 事件 如果 Change 事件中包含有代码, 则该代码将会执行 本章小结 本章介绍了 VB 开发集成环境, 通过学习初步建立起面向对象程序设计的概念, 然后通过简单的程序实例, 介绍了 VB 应用程序的建立过程及窗体 标签和文本框等基本控件的使用

31 第 2 章窗体和基本控件 本章要点 窗体及其常用属性 事件和方法 标签 文本框和命令按钮的使用 焦点的概念 2.1 控件的常用属性 VB 中的对象都有自己的属性, 其中有一部分属性是大多数控件所共同具有的, 如名 称属性 (Name) 是否可见属性 (Visible) 等 下面介绍一些控件的常用属性 1. Name 属性 Name( 名称 ) 属性是所有对象都具有的属性, 它是所创建对象的名称, 为字符串型 所有的对象在创建时都会由 VB 自动提供一个默认名称, 如 Form1 Label1 Text2 等 Name 属性在 属性 窗口的第一行, 即 名称 框中进行修改 Name 属性的值将作为 对象的标识在程序中被引用 需要注意的是,Name 属性只能设计时在 属性 窗口里设置, 在程序运行时是只读 的, 不可以用赋值语句更改 例如,Form1.Name = "NewName" 是错误代码 2. Caption 属性 Caption( 标题 ) 属性的值为字符串型, 表示所属对象的标题, 将显示在对象上 在 默认情况下, 对象的 Caption 属性值与 Name 属性值相同, 但 Caption 属性值可以在程序 中用赋值语句重新设置 例如 : Form1.Caption = " 我的窗体 " 3. Height 和 Width 属性 科学出版社职教技术出版中心 Height 和 Width( 高度和宽度 ) 属性用来设置和返回控件对象的高度和宽度, 属性值均为数值型, 它们决定了控件对象的大小, 如图 2.1 所示 在窗体上设计控件时,VB 自动提供了默认坐标系统, 窗体的上边框为坐标横轴, 左边框为坐标纵轴, 窗体左上角顶点为坐标原点 (0,0), 单位为 twip 1twip=1/20 点 =1/1440in= 1/567cm

32 第 2 章窗体和基本控件 21 图 2.1 控件位置属性 4. Top 和 Left 属性 Top 和 Left( 上边距和左边距 ) 属性决定了控件对象在其父对象中的位置, 属性值为数值型 例如, 当一个命令按钮控件放置到窗体上时,Top 表示按钮到窗体顶端的距离, Left 表示按钮到窗体左端的距离, 如图 2.1 所示 对于窗体,Top 表示窗体到屏幕顶端的距离,Left 表示窗体到屏幕左端的距离, 此时屏幕是窗体的父对象 5. Enabled 属性 Enabled( 可用 ) 属性用来设置控件是否有效 属性值为逻辑型, 默认值为 True True: 允许用户操作, 并对操作作出响应 False: 禁止用户操作, 呈暗淡色 例如 : Text1. Enabled= False ' 使文本框 Text1 不可用 6. Visible 属性 Visible( 可见 ) 属性用来设置控件是否可见 属性值为逻辑型, 默认值为 True True: 程序运行时控件可见 False: 程序运行时控件隐藏 7. Font 属性 Font( 字体 ) 属性用来设置文本的外观, 可以在程序中设置, 也可以在 属性 窗口中设置, 其属性对话框如图 2.2 所示, 默认情况下为宋体 小五号字 FontName: 设置字体类型, 属性值为字符串型, 如 宋体 隶书 FontSize: 设置字的大小, 属性值为整型, 如 FontBold: 设置字形是否粗体, 属性值为逻辑型 FontItalic: 设置字形是否斜体, 属性值为逻辑型 FontStrikethru: 设置文本是否加删除线, 属性值为逻辑型 FontUnderline: 设置文本是否加下画线, 属性值为逻辑型

33 22 Visual Basic 程序设计教程 图 2.2 字体 对话框 8. BackColor 属性 BackColor( 背景色 ) 属性用来设置对象的背景色, 颜色值是一个十六进制常量, 每种颜色都用一个常量来表示 在 属性 窗口列表中选择 BackColor, 单击右边的按钮, 将弹出一个列表, 用户可以通过选择 调色板 或 系统 内的颜色完成属性设置, 也可以直接键入颜色值, 或使用 VB 颜色常量 例如 : Form1.BackColor=&HFF00AA Form1.BackColor=VBWhite ' 将窗体背景色设置为紫色 ' 将窗体背景色设置为白色 9. ForeColor 属性 ForeColor( 前景色 ) 属性用来设置对象的前景色 ( 即正文颜色 ), 其值是一个十六进制常数, 设置方法与 BackColor 属性的设置方法相同 10. BackStyle 属性 BackStyle( 背景样式 ) 属性用来设置对象的背景样式, 属性值为数值型 0-Transparent: 透明, 即不显示控件背景色 1-Opaque: 不透明, 此时可为控件设置背景颜色 11. BorderStyle 属性 BorderStyle( 边框样式 ) 属性用来返回和设置控件边框样式, 属性值为数值型 0-None: 控件周围没有边框 1-Fixed Single: 控件带有单边框 12. Alignment 属性 科学出版社职教技术出版中心 Alignment( 对齐样式 ) 属性用来设置正文在控件上的对齐方式, 属性值为数值型 0-Left Justify: 正文左对齐 1-Right Justify: 正文右对齐 2-Center: 正文居中对齐

34 第 2 章窗体和基本控件 AutoSize 属性 AutoSize( 自动调整 ) 属性用来设置控件是否可以根据正文自动调整大小, 属性值为逻辑型 True: 可以自动调整大小 False: 保持原设置时的大小, 正文若太长将自动裁剪 14. TabIndex 属性 TabIndex 属性值决定了对象的 Tab 顺序, 即按 Tab 键时焦点在各个控件间轮换的顺序 该属性值为数值型 焦点是指对象接收用户鼠标或键盘输入的能力, 当对象具有焦点时, 可接收用户的输入, 否则将不能接收用户的输入 当向窗体上添加多个控件时, 系统会自动为它们分配一个 Tab 顺序 在默认情况下, 其 Tab 顺序与控件建立的顺序相同, 即第 1 个建立的控件的 TabIndex 属性值为 0, 第 2 个为 1, 以此类推 若要改变控件的 Tab 顺序, 可以通过设置 TabIndex 属性来实现,TabIndex 属性值可在 属性 窗口中或在应用程序中进行设置 15. 控件默认属性每个控件对象有且只有一个属性可以直接由控件名来代表 例如, 对文本框的 Text 属性赋值, 可以用 Text1 代表 Text1.Text 例如: Text1.Text="Visual Basic" 可以简写为 : Text1="Visual Basic" VB 中把这个特殊的属性叫做控件的默认属性 一般控件的默认属性是该控件最重要的属性 控件的默认属性如表 2.1 所示 表 2.1 常用控件的默认属性 控 件 默认属性 控 件 默认属性 文本框 Text 标签 Caption 命令按钮 Value 图片框 图像框 Picture 单选钮 Value 复选框 Value 滚动条 Value 列表框 组合框 Text 2.2 窗体 窗体 (Form) 位于 VB 集成开发环境的窗体设计器窗口 ( 或对象窗口 ) 中, 它既是一个控件, 又是其他控件的容器 设计 VB 应用程序的第一步就是创建用户界面, 窗体就相当于用户界面的一块 画布, 将应用程序中需要的控件画在窗体上, 并摆放在适当

35 24 Visual Basic 程序设计教程 位置, 就完成了应用程序设计的第一步 新建工程时 VB 系统自动创建一个窗体, 默认名称为 Form1, 在保存工程时, 窗体也要作为文件保存在磁盘上, 其扩展名为.frm 与 Windows 环境下的应用程序窗口一样,VB 中的窗体也具有控制菜单 标题栏 最大化 / 还原按钮 最小化按钮 关闭按钮 边框及窗口区, 如图 2.3 所示 图 2.3 窗体的结构 窗体的基本属性 通过修改窗体的属性可以改变窗体的结构特征, 控制窗体的外观 窗体的大部分属 性可用两种方法来设置 : 通过 属性 窗口设置和通过程序代码设置 有少量的属性不能在程序代码中设置 在 VB 中, 窗体的属性有几十种之多, 在 属性 窗口可以查阅和设置所有属性, 下面就程序设计中常用的属性进行简单介绍 1. Name 属性 在 VB 工程中添加一个窗体, 就是创建一个窗体对象,Name( 名称 ) 属性用来标识它的名称, 必须以字母开头, 由字母 数字和下画线组成, 长度不超过 40 个字符 该属性值不允许与其他对象重名, 也不允许使用 VB 的保留关键字和对象名 窗体默认的 Name 属性为 FormX(X=1,2,3 ), 新建工程时, 窗体的名称默认为 Form1; 添加第二个窗体, 其名称默认为 Form2, 以此类推 2. Caption 属性 Caption( 标题 ) 属性用于设置或获得窗体的标题, 可以是任意字符串 该属性既可以在 属性 窗口中设定, 也可以在代码中修改 例如 : Me.Caption=" 第一个 Visual Basic 程序 " 上述语句用于对当前窗体标题进行设置,Me 指当前窗体 如果想获得当前窗体的标题, 可以用以下语句完成 : 科学出版社职教技术出版中心 x=me.caption ' 将当前窗体的标题赋给变量 x

36 第 2 章窗体和基本控件 Height Width 属性 Height Width 属性用于指定窗体的高度和宽度, 单位为 Twip 如果不指定高度和宽度, 则窗口的大小与用户设置界面时大小相同 除了可以在 属性 窗口中设置这些属性之外, 还可以通过拖动鼠标的方法来改变窗体的大小 若通过程序代码来设置, 其格式为 : 对象.Height[= 数值 ] 对象.Width[= 数值 ] 4. Left Top 属性 Left Top 属性用于设置窗体左边框距屏幕左边界的距离和窗体顶边距屏幕顶端的距离, 单位为 Twip 可以使用 VB 的 窗体布局 窗口改变窗体的位置, 它位于 VB 环境的右下角, 其外观如一个显示器模样, 将鼠标指针移到此 小显示器 内的窗体上, 光标立即变成一个十字形, 此时按住鼠标左键拖动, 即可改变窗体的位置 该属性也可以通过程序代码来设置, 其格式为 : 对象.Left[= 数值 ] 对象.Top[= 数值 ] 5. Font 属性 Font 属性用来改变文本的字体类型 大小及其修饰 6. BackColor 和 ForeColor 属性 Backcolor 属性 : 用于返回或设置对象的背景颜色 ForeColor 属性 : 用于返回或设置在对象里显示图片和文本的前景颜色 注意 : 窗体的前景色是指在窗体上输出 ( 由 Print 方法输出 ) 的文本及绘制的图形的颜色, 对于其中的标签 命令按钮等控件没有影响 7. ControlBox 属性 ControlBox( 控制菜单框 ) 属性用来设置窗口控制菜单框的状态 设置为 True, 表示有控制菜单 ; 设置为 False, 表示无控制菜单, 同时窗体也无最大化按钮和最小化按钮 8. MaxButton 和 MinButton 属性 MaxButton 和 MinButton 属性用于设置窗体的标题栏是否具有最大化和最小化按钮 MaxButton 属性为 True 时, 表示窗体有最大化按钮 ; 为 False 时, 表示窗体没有最大化按钮 MinButton 属性为 True 时, 表示窗体有最小化按钮 ; 为 False 时, 表示窗体没有最小化按钮 ControlBox MaxButton 和 MinButton 属性如图 2.4 所示

37 26 Visual Basic 程序设计教程 图 2.4 窗体的 ControlBox MinButton 和 MaxButton 属性 9. BorderStyle 属性 BorderStyle( 边框类型 ) 属性用来设置窗体边框的类型 其属性值在运行时不能修改, 只能在设计模式下, 通过 属性 窗口修改 该属性取值范围为 0~5, 共六种类型 通过改变 BorderStyle 属性, 可以控制窗体大小的调整 各设置值含义如表 2.2 所示 表 2.2 BorderStyle 属性取值属性说明 0-None 1-FixedSingle 2-Sizable 3-FixedDialog 4-FixedToolWindow 无边框 无标题栏, 不能改变窗体大小, 运行时任务栏上无对应按钮固定单边框 无最大 最小化按钮, 不能改变窗体大小可调整的边框 ( 默认值 ) 有最大 最小化按钮, 可以改变窗体大小固定对话框 有标题栏, 但无最大 最小化按钮, 不能改变窗体大小, 运行时任务栏无该窗体按钮固定工具窗口 窗体大小不能改变, 只显示关闭按钮, 标题栏字体缩小 5-SizableToolWindow 可变大小工具窗口 窗体大小可以改变, 只显示关闭按钮, 标题栏字体缩小 注意 : 当设置为 0( 窗体无边框 ) 时,ControlBox( 控制框 ) 属性 MaxButton( 最大化按钮 ) 和 MinButton( 最小化按钮 ) 属性的设置将不起作用 10. WindowState 属性 WindowState( 窗口状态 ) 属性用于设置程序启动后窗体的初始状态, 有三种形式可供选择, 如表 2.3 所示 0-vbNormal 表 2.3 WindowState 属性表 属性说明 正常状态, 窗口有边界 启动程序时窗体的大小为设置的大小, 其位置也为设置的位置 1-vbMinimized 最小化状态, 启动时窗体缩小为任务栏里的一个图标 (Icon 属性值 ) 2-vbMaximized 11. Enabled 属性 最大化状态, 无边界 启动时窗体布满整个屏幕 Enabled 属性用于设置窗体以及其内部的控件是否可以被操作, 其值为逻辑型 当取值为 True 时, 允许用户进行操作 ; 取值为 False 时, 不允许用户操作 12. Movable 属性 Movable 属性值为 True 或 False, 设置是否可以移动窗体 科学出版社职教技术出版中心

38 第 2 章窗体和基本控件 Visible 属性 Visible 属性用来设置窗体是否可见, 其值为逻辑型 当取值 True 时, 表示运行时窗体可见 ( 默认值 ); 设置为 False 时, 表示运行时控件隐藏, 用户看不到, 但控件本身是存在的 14. Icon 属性 Icon( 图标 ) 属性为返回或设置窗体左上角显示或最小化显示时的图标, 常用的图标文件格式为 Ico Cur 等 此属性必须在 ControlBox 属性设置为 True 时才有效 注意 : 在 VB 安装目录的 common\graphics 下有系统自带的各种图片和图标 15. Picture 属性 Picture( 图片 ) 属性用于设置窗体的背景图片 该属性可以显示多种格式的图形文件, 如位图文件 (.bmp) 图形交换格式文件(.gif) JPEG 压缩文件 (.jpg) 图元文件(.wmf) 图标文件 (.ico) Picture 属性可以在 属性 窗口中进行设置, 只需要单击 属性 窗口中的 Picture 设置框右边的 按钮, 打开 加载图片 对话框, 选择一个图形文件即可 该属性也可以在程序代码中进行设置 在代码中进行设置的格式为 : 对象名.Picture=LoadPicture(" 图片文件名 ") 例如 : Form1.Picture=LoadPicture("c:\abc\xyz.jpg") 上述语句作用是为 Form1 窗体加载名为 xyz.jpg 的图片 说明 : (1)LoadPicture() 是一个加载图片的函数 (2) 图片文件名必须包括扩展名, 如果文件不在当前文件夹下, 还必须包含图片文件的路径 (3) 若要清除背景图片, 只要将 LoadPicture() 函数括号里面的内容设为空即可 例如 : Form1. Picture=LoadPicture() ' 删除图片 16. AutoRedraw 属性 AutoRedraw 属性决定窗体被隐藏或被另一个窗口覆盖之后重新显示, 是否重新还原该窗体被隐藏或覆盖以前的画面, 即是否重画如 Circle Line PSet 和 Print 等方法的输出 当值为 True 时, 重新还原该窗体以前的画面 ; 当值为 False 时, 则不重画 窗体的常用事件窗体的事件是由 VB 预先定义好的 能够被窗体对象所识别的动作 在代码窗口中可以查阅到与窗体有关的所有事件, 这里只介绍一些最常用的事件

39 28 Visual Basic 程序设计教程 1. 鼠标事件当在窗体上进行鼠标移动 (MouseMove) 按下鼠标键(MouseDown) 释放鼠标键 (MouseUp) 单击(Click) 双击(DblClick) 等操作时, 会发生相应的鼠标事件 1)Click 事件在程序运行过程中, 单击一个窗体的空白区域, 则会触发窗体的单击事件, 此时系统会自动调用窗体事件过程 Form_Click() 例 2.1 设计一个应用程序, 当单击窗体时, 窗体标题变为 VB 应用程序, 并在窗体上用 Print 方法输出 欢迎使用 Visual Basic 6.0 步骤 : (1) 创建一个新的工程, 窗体名默认为 Form1, 标题默认也是 Form1 (2) 双击窗体, 打开代码输入窗口, 默认事件是窗体的 Load 事件 在代码窗口的右上角事件列表框中选中 Click 事件, 如图 2.5 所示 图 2.5 事件列表框中选择事件 (3) 在窗体的 Click 事件过程中输入代码, 如图 2.6 所示 图 2.6 代码窗口 (4) 运行应用程序, 结果如图 2.7 所示 科学出版社职教技术出版中心 图 2.7 程序运行结果 2)DblClick 事件当在程序运行过程中, 双击一个窗体的空白区域, 则会触发窗体的双击事件, 此时系统会自动调用执行窗体事件过程 Form_DblClick()

40 第 2 章窗体和基本控件 29 3)MouseDown 事件 当按下鼠标键时, 就会触发 MouseDown 事件 例如 : Private Sub Form_MouseDown(Button As Integer, Shift As Integer, _ X As Single, Y As Single) Print " 这就是 MouseDown 事件 " 运行程序后, 在窗体上按下鼠标左键或右键, 则会在窗体上显示 这就是 MouseDown 事件 2. 其他事件 1)Load 事件 Load 事件是窗体被装入内存工作区时触发的事件 当应用程序只有一个窗体时, 应用程序一启动就会自动执行该事件中的代码, 除非专门调用, 此事件中的代码只被执行一次 通常用于启动程序时, 对属性和变量进行初始化以及装载数据等 如果在 Form_Load 事件内显示信息, 必须使用 Show 方法或者把 AutoRedraw 属性设置为 True, 否则程序运行时什么都不显示 例 2.2 利用代码设置窗体的属性 创建一个窗体, 双击窗体, 打开代码窗口, 输入如下语句 : Private Sub Form_Load() Me.Height = 1800 Me.Width = 3000 Me.Top = 3000 Me.Left = 1500 Me.Caption = " 窗体示例 " Me.BackColor = RGB(255, 255, 255) Me.AutoRedraw = True 'Me 代表当前窗体, 设置窗体高度 ' 设置窗体宽度 ' 设置窗体到屏幕的上边距 ' 设置窗体到屏幕的左边距 ' 设置窗体的标题 ' 设置窗体的背景颜色为白色 2)Unload( 卸载 ) 事件 Unload 事件是在一个窗体被卸载时产生 当单击窗体右上角的 关闭 按钮或执行 Unload 语句时, 就可以触发 Unload 事件 3)Activate( 活动 ) 和 Deactivate( 非活动 ) 事件在程序运行过程中, 一个窗体变为活动窗体时, 则触发 Activate 事件, 系统会自动执行 Form_Activate 事件过程 当取消该活动窗体, 激活另一个窗体时该窗体发生 Deactivate 事件, 系统执行 Form_DeActivate 事件过程 4)Paint( 绘图 ) 事件在应用程序运行时, 若出现下列情况就会自动触发 Paint 事件 (1) 窗体窗口被最小化成图标, 然后又恢复正常显示状态 (2) 原本遮挡着该窗体的窗体被移开并使该窗体全部或部分显露出来 (3) 该窗体因其他窗体的移动而被全部或部分遮挡

41 30 Visual Basic 程序设计教程 (4) 窗体的大小改变或移动 (5) 使用 Refresh 方法 触发 Paint 事件后, 可以进行窗体的重绘 将 AutoRedraw 属性值设置为 True, 也可以自动完成窗体的重绘 如果窗体的 ClipControls 属性设置为 False 时, 则重绘窗体刚刚显露的部分, 否则重绘整个窗体 5)Resize 事件当用户交互或是通过代码调整窗体的大小时, 都会触发一个 Resize 事件, 当窗体尺寸变化时, 允许在窗体上进行移动控件或调整控件大小等操作 例 2.3 设计一个应用程序, 在窗体上显示制定的字符串, 单击鼠标结束执行 步骤 : (1) 创建一个新的工程 (2) 双击窗体, 打开代码窗口, 在默认的 Load 事件中设置窗体属性, 输入如下代码 : Private Sub Form_Load() Me.Caption = "VB 应用程序示例 " Me.Top = 1000 Me.Left = 2000 Me.Height = 1500 Me.Width = 4000 ' 窗体加载事件, 窗体属性初始化 (3) 在窗体的 Activate 事件中输入代码 : Private Sub Form_Activate() ' 窗体激活事件 Me.BackColor = QBColor(15) ' 窗体背景为白色 Me.FontName = " 黑体 " Me.FontSize = 12 ' 字号 12 磅,1 磅 =1/72 英寸 Me.ForeColor = QBColor(9) ' 字体颜色为浅蓝色 Print Print Spc(2); " 窗体的属性 事件和方法举例 " ' 显示字符串 (4) 在 Click 事件中输入代码 : Private Sub Form_Click() End ' 结束程序 (5) 程序运行结果如图 2.8 所示 科学出版社职教技术出版中心 图 2.8 窗体属性举例

42 第 2 章窗体和基本控件 窗体的常用方法窗体对象可以执行的方法有很多种, 要查阅窗体所有方法, 可在代码窗口中输入窗体名后加小数点, 则该窗体对象的所有属性和方法立即在一个列表框中显示出来, 如图 2.9 所示 图 2.9 窗体的所有方法和属性 1. Print 方法 Print 方法可以在窗体上显示文本字符串和表达式的值, 也可以在其他图形对象或打印机上输出信息 其语法格式为 : [ 对象名.] Print [ 表达式列表 ] 说明 : (1) 对象名 : 可以是 Form( 窗体 ) Debug( 立即窗口 ) Picture( 图片框 ) Printer ( 打印机 ) 省略此项, 表示在当前窗体上输出 例如 : Print "12*2="; 12*2 ' 在当前窗体上输出 12*2=24 Picture1.Print "Good" ' 在图片框 Picture1 上输出 Good Printer.Print "Morning" ' 在打印机上输出 Morning (2) 表达式列表 : 可以是一个或多个表达式 如果是数值表达式, 则输出数值表达式运算后的结果, 输出数值的前面有一个符号位, 后面有一个空格 ; 如果是字符串表达式, 则原样输出, 输出字符串的前后都没有空格 ; 如果省略 表达式列表, 则输出一个空行 例如 : Private Sub Form_Click() x = 10 Print x ' 输出变量 x 的值 Print ' 输出一个空行 Print ' 输出数值表达式 2+3 的值 Print "2+3" ' 输出字符串 "2+3" 单击窗体, 运行结果如图 2.10 所示 多个表达式之间要用分号或逗号隔开 如果用分号隔开, 则以紧凑格式输出数据 ; 如果用逗号隔开, 则以标准格式输出数据, 即每个输出项占 14 个字符位 当输出的某一

43 32 Visual Basic 程序设计教程 数据项宽度超过 13 个字符时, 将为该数据项自动增加 14 个字符位置 例如 : Private Sub Form_Click() Print "3"; "5"; "8" Print "1", "2", "3" Print "123", "123", "123" ' 用分号隔开, 以紧凑格式输出数据 ' 用逗号隔开, 每个输出项占 14 个字符位 单击窗体, 运行结果如图 2.11 所示 (3) 如果在 Print 方法中最后一个表达式后有 ;, 则下一个 Print 输出的内容, 将紧跟在当前 Print 输出内容后面 ; 如果在语句行末尾有,, 则下一个 Print 输出的内容, 将在当前 Print 输出内容的下一区段输出 ; 如果在语句行末尾无分隔符, 则输出完本语句内容后换行, 即在新的一行输出下一个 Print 的内容 例如 : Private Sub Form_Click() Print " "; Print " = "; Print Print " ", Print " = ", Print ' 分号连接的紧凑格式 ' 逗号连接的标准格式 单击窗体, 输出的结果如图 2.12 所示 图 2.10 运行结果图 2.11 运行结果图 2.12 运行结果 (4) 可以用? 代替关键字 Print,VB 会自动将它转换成 Print (5) 与 Print 方法有关的函数 VB 提供了一些与 Print 方法结合使用的函数, 包括 Tab() Spc() Space() 和 Format() 等, 利用这些函数可以指定输出内容的位置及格式 1 Tab() 函数 格式 :Print Tab(n); 输出内容功能 : 与 Print 方法结合使用, 从第 n 列开始输出内容,n 为整数 说明 : 如果一个 Print 语句中使用多个 Tab() 函数, 则每个 Tab() 函数对应一个输出项, 各输出项之间用分号隔开 2 Spc() 函数 格式 :Print Spc(n); 输出内容功能 : 与 Print 方法结合使用, 从当前位置跳过 n 列后再输出内容,n 为整数 说明 : 如果一个 Print 语句中使用多个 Spc() 函数, 则每个 Spc() 函数对应一个输出项, 各输出项之间用分号隔开 科学出版社职教技术出版中心

44 第 2 章窗体和基本控件 33 注意 :Spc() 函数与 Tab() 函数功能相似, 但应注意 Tab() 函数是从对象左端开始计数, 而 Spc() 函数是从前一输出项结束位置开始计数, 表示两个输出项之间的间隔 3 Space() 函数 格式 :Space(n) 功能 : 返回由 n 个空格组成的字符串 注意 :Space() 函数与 Spc() 函数功能相似, 但应注意 Space() 函数和输出内容之间可以用字符串运算符进行连接, 而 Spc() 函数和输出内容之间只能用分号进行连接 例如, 用如下代码验证上述函数的使用 Private Sub Form_Click() Print " " Print Tab(10); "abc" ' 从第 10 列开始输出字符串 "abc" Print Tab(5); " 中国 "; Tab(10); " 辽宁 "; Tab(20); " 沈阳 " Print Spc(10); "abc" ' 跳过 10 列后再输出字符串 "abc" Print " 中国 "; Spc(5); " 辽宁 "; Spc(5); " 沈阳 " Print " 中国 " + Space(5) + " 辽宁 " + Space(5) + " 沈阳 " 单击窗体, 运行结果如图 2.13 所示 2. Cls 方法 Cls 方法用于清除使用 Print 等方法输出到窗体或图片框中的内容 其语法格式是 : [ 窗体名 ].Cls 例如,Form1 是一个窗体对象名, 有以下语句 : 图 2.13 运行结果 Form1.Cls 则该语句运行完毕后, 窗体上输出的文字和图形就会全部被清除掉 说明 : (1)Cls 将清除图形和打印语句在运行时所产生的文本和图形, 而设计时在 Form 中使用 Picture 属性设置的背景位图和放置的控件不受 Cls 影响 如果激活 Cls 之前 AutoRedraw 属性设置为 False, 调用时该属性设置为 True, 则放置在 Form 或 PictureBox 中的图形和文本也不受影响 这就是说, 通过对正在处理的对象的 AutoRedraw 属性进行操作, 可以保持 Form 或 PictureBox 中的图形和文本 (2) 调用 Cls 之后, 对象的 CurrentX 和 CurrentY 属性复位为 0 3. Hide 方法 Hide 方法可以隐藏 Form 对象, 但不能使其卸载 其语法格式为 : [ 窗体名 ].Hide 例如 : Form1.Hide ' 隐藏窗体 Form1

45 34 Visual Basic 程序设计教程 如果省略窗体名, 则默认为当前窗体 ( 带焦点的窗体 ) 说明 : (1) 隐藏窗体时, 它就从屏幕上被删除, 并将其 Visible 属性设置为 False 用户将无 法访问隐藏窗体上的控件, 但是对于运行中的 VB 应用程序, 或对于 Timer 控件的事件, 隐藏窗体的控件仍然是可用的 (2) 窗体被隐藏时, 用户只有等到被隐藏窗体的事件过程的全部代码执行完后才能 够与该应用程序交互 (3) 若调用 Hide 方法时窗体还没有加载, 则 Hide 方法将加载该窗体但不显示它 式为 : 4. Show 方法 Show 方法用以快速地显示一个窗体, 并将该窗体设置为当前活动窗体 其语法格 说明 : 窗体名.Show[ 模式 ] (1) 如果调用 Show 方法时指定的窗体没有装载,VB 将自动装载该窗体 (2) 应用程序的启动窗体在其 Load 事件调用后会自动出现 (3) 可选参数 模式, 用来确定被显示窗体的状态 : 值等于 1 时, 表示窗体状态为 模态 ( 模态是指鼠标只在当前窗体内起作用, 只有关闭当前窗口后才能对其他窗口进 行操作 ); 值等于 0 时, 表示窗体状态为 非模态 ( 非模态是指不必关闭当前窗口就可 以对其他窗口进行操作 ) 5. Move 方法 Move 方法可以移动窗体或控件, 并可改变其大小 其语法格式为 : 说明 : [ 对象名 ].Move left[,top[,width[,height]]] (1)Move 方法中 对象 是可选的 如果省略 对象, 则当前窗体默认为对象 (2) 参数 left 是必需的, 指示对象左边的水平坐标 (x 轴 ); 参数 top 是可选的, 指 示 对象 顶边的垂直坐标 (y 轴 ); 参数 Width 也是可选的, 指示 对象 新的宽度 ; 参数 height 同样是可选的, 指示 对象 新的高度 (3) 要指定任何其他的参数, 必须先指定出现在语法中该参数前面的全部参数 例 如, 如果不先指定 left 和 top 参数, 则无法指定 width 参数 任何没有指定的尾部参数保 持不变 例如, 使用窗体 Move 方法 科学出版社职教技术出版中心 Form1.Move 0,0 ' 将窗体移动到屏幕的左上角 Form1.Move Form1.Left+500 ' 将窗体在原来位置的基础上向右移动 500 缇 Form1.Move 2000,4000 ' 将窗体移动到新位置 (2000,4000), 大小没有改变

46 第 2 章窗体和基本控件 标签 标签 (Label) 是 VB 中最简单的控件, 用于显示不需要用户修改的文本内容 通常用标签来标注本身不具有 Caption 属性的控件 例如, 可用标签为文本框 列表框 组合框等控件添加描述性的文字 标签的常用属性 1. Caption 属性 Caption 属性用来设置在标签上要显示的文本信息 该属性既可以在创建界面时设置, 也可以在程序中改变文本信息 如果要在程序中修改标题属性, 代码如下 : 标签名.Caption=" 我的第一个标签 " 2. BorderStyle 属性 BorderStyle 属性用来设置标签的边框类型, 其有两种可选值 : 默认值为 0, 表示标签无边框 ; 设置为 1 时, 表示标签有立体边框 3. Font 属性 Font 属性用来设置标签显示的字体 字形 下画线等, 既可以在创建界面时设定, 也可以在程序中改变 例如, 在程序中改变 Font 属性, 代码如下 : Label1.FontName=" 宋体 " Label1.FontSize=9 ' 设置标签字体为宋体 ' 设置字号为 9 号 粗体 (FontBold) 斜体(FontItalic) 下画线(FontUnderline) 删除线(FontStrikethru) 属性的设置值是 True 或者 False 例如: Label1.FontBold=True Label1.FontItalic=True ' 标签字体加粗 ' 标签字体倾斜 4. AutoSize 属性 AutoSize 属性用于设置标签是否能够自动调整大小以显示所有的内容 取值为 True 时, 表示能够自动调整大小 ; 取值为 False 时, 表示不能自动调整大小 5. Alignment 属性 Alignment 属性用来设置标签中内容的对齐方式, 其值有以下三种 0-Left Justify( 默认值 ): 表示文本左对齐 1-Right Justify: 表示文本右对齐 2-Center: 表示文本居中 例如 :

47 36 Visual Basic 程序设计教程 Label1.Alignment=2 ' 标签文字居中对齐 6. BackStyle 属性 BackStyle 属性用于设置标签的背景样式 其值可以为 :0-Transparent 或 1-Opaque ( 默认值 ), 分别表示透明和不透明 7. WordWrap 属性 WordWrap 属性用来设置标签的文本在显示时是否能够自动换行 取值为 True 时表示具有自动换行功能, 取值为 False( 默认值 ) 时, 表示没有自动换行功能 注意 : 只有将 AutoSize 属性设置为 True 时, 对 WordWrap 属性的设置才起作用 标签的常用方法一般很少使用标签事件, 常用的标签方法有 Move, 用于移动标签的位置并可在移动位置时改变标签的大小 2.4 文本框 文本框 (TextBox) 在窗体中为用户提供一个既能显示文本又能编辑文本的区域 在文本框内, 用户可以对文字进行输入 删除 选择 复制及粘贴等各种操作 文本框的主要属性 1. Text 属性 Text 属性用于设置文本框中显示的文本 这是文本框的默认属性, 也是最重要的属性, 可以在设计阶段进行设置, 也可以在程序中设置, 还可以在程序中使用这一属性取得当前文本框的文本 2. Locked 属性 Locked 属性用来设置在运行时输入文本框的文本能否被编辑 其默认值为 False, 表示在运行时可以编辑输入文本框的文本 ; 反之, 当其取值为 True 时, 表示输入文本框不可被编辑, 而只能被浏览或高亮度显示 注意 :Locked 属性一般只是在运行时发挥作用, 当其取值为 True 时, 可以通过程序代码设置文本框的 Text 属性, 从而改变显示在文本框中的内容 3. MaxLength 属性 科学出版社职教技术出版中心 MaxLength 属性用于设定文本框中最多允许输入的字符数 当设置为 0 时 ( 默认值 ), 表示可容纳任意多个字符 若将其设置为正整数值, 即为可容纳的最多字符数

48 第 2 章窗体和基本控件 MultiLine 属性 MultiLine 属性用于设置文本框是否允许显示和输入多行文本 取值为 True 时, 表示允许显示和输入多行文本, 当要显示或输入的文本超过文本框的右边界时, 文本会自动换行, 在输入时也可以按 Enter 键强行换行 取值为 False 时, 表示不允许显示和输入多行文本, 当要显示或输入的文本超过文本框的边界时, 将只显示一部分文本, 并且在输入时也不会对 Enter 键作换行的反应 5. PasswordChar 属性 PasswordChar 属性用于设定文本框输入口令类文本 当把这一属性设定为一个非空字符时 ( 如常用的 * ), 运行程序时用户输入的文本就会只显示这一非空字符, 但系统接收的却是用户输入的文本 系统默认为空字符, 在运行时, 用户输入的文本将直接显示在文本框中 6. ScrollBars 属性 ScrollBars 属性用于设置文本框中是否带有滚动条, 有四个可选值 :None 表示不带有滚动条 ;Horizontal 表示带有水平滚动条 ;Vertical 表示带有垂直滚动条 ;Both 表示带有水平和垂直滚动条 注意 : 要使文本框具有滚动条, 必须将 Multiline 属性设置为 True, 否则 ScrollBars 属性将无效 文本框具有滚动条后, 自动换行功能将失效 7. SelStart 属性 SelStart 属性用于返回或设置文本在文本框中的插入点 其取值为整数类型, 默认值为 0, 表示插入点位于文本框的最左边 8. SelLength 属性 SelLength 属性用于返回或设置文本框中默认选中的字符个数 其取值为整数类型, 默认设置为 0, 表示不选中任何字符 当其取值大于 0 时, 表示从插入点位置开始选中并高亮度显示与 SelLength 属性相对应个数的字符 9. SelText 属性 SelText 属性用于返回或设定文本框中当前被选中的文本, 其取值为字符串类型 在程序运行时, 如果 SelText 属性被赋予新的文本, 则选中的文本将被替换成新的文本 ; 反之, 如果没有被赋予新的文本, 则 SelText 属性将从当前插入点位置开始插入文本 注意 : 通常情况下, 文本框的 SelStart SelLength 和 SelText 三个属性共同作用, 用来控制文本框的插入点和文本选择行为, 并且只能在运行时通过程序代码对其进行设置 例 2.4 复制文本框中所选内容 设计程序, 使得单击窗体时, 程序会自动将第 1 个文本框的前 12 个字符选定并显示在第 2 个文本框中 程序运行结果如图 2.14 所示

49 38 Visual Basic 程序设计教程 图 2.14 程序运行结果步骤 : (1) 创建界面 在窗体上添加两个文本框 Text1 Text2 其中,Text1 的 Text 属性设置为 : 文本框 (TextBox) 在窗体中为用户提供一个既能显示文本又能编辑文本的区域 在文本框内, 用户可以用鼠标 键盘按常用的方法对文字进行编辑, 例如进行输入 删除 选择 复制及粘贴等操作 (2) 设置属性 属性设置如表 2.4 所示 表 2.4 文本框属性设置对象名属性名属性值说明 Text1 Text2 MultiLine True 允许多行显示 ScrollBars 2-Vertical 只有垂直滚动条 MultiLine True 允许多行显示 ScrollBars 3-Both 同时加水平和垂直滚动条 (3) 编写代码 Private Sub Form_Click() Text1.SelStart = 0 ' 将 Text1 中的第 1 字符设为要选择文本的起点 Text1.SelLength = 12 ' 将选择文本的长度定为 12 个字符 Text2.Text = Text1.SelText ' 将被选择的字符串存入 Text2 中 文本框的常用事件 文本框除支持 Click DblClick 事件, 常用的还有 Change GotFocus LostFocus 事件 1. Change 事件 当用户输入新内容, 或程序对文本框的 Text 属性重新赋值, 从而改变文本框的 Text 属性时触发该事件 例如, 有两个文本框, 当用户在第一个文本框中输入字符时, 若要在第二个文本框中显示相同的字符, 则只需编写如下代码 : Private Sub Text1_Change() Text2.Text = Text1.Text 科学出版社职教技术出版中心

50 第 2 章窗体和基本控件 GotFocus 事件当光标转移到文本框中时, 称为文本框取得焦点, 触发 GotFocus 事件 可能触发该事件的情况包括 : 用户按 Tab 键, 跳转到该文本框中 ; 用户用鼠标单击文本框 ; 用户在程序代码中用 SetFocus 方法激活了该文本框等 3. LostFocus 事件当用户按下 Tab 键时光标离开文本框, 或用鼠标选择其他对象时触发该事件, 称为 失去焦点 事件, 它是和 GotFocus 相对应的一个事件 一般情况下, 可能触发这一事件的情况包括 : 用户按 Tab 键, 跳出该文本框 ; 用户用鼠标单击其他控件等 文本框的常用方法文本框最常用的方法是 SetFocus, 使用该方法可把光标移到指定的文本框中, 使之获得焦点 当使用多个文本框时, 用该方法可把光标移到所需要的文本框中 例如, 当单击窗体时, 将光标置于文本框 Text1 中, 需要添加如下代码 : Private Sub Form_Click() Text1.SetFocus ' 让文本框 Text1 获取焦点 说明 : 该方法还适用于可以获得焦点的其他对象, 如 CheckBox CommandButton 和 ListBox 等控件 2.5 命令按钮 命令按钮 (CommandButton) 控件常常用来接受用户的操作信息, 触发相应的事件过程 它是用户与程序进行交互的最简便的方法 命令按钮的常用属性 1. Caption 属性 Caption 属性用来返回或设置命令按钮上显示的文本信息 可以通过代码设置, 从而显示相应的信息 此外可以通过 Font 属性来设置命令按钮中显示文本的字体和大小等 2. Cancel 属性 Cancel 属性是命令按钮的特有属性, 用来指示窗体中命令按钮是否为取消按钮 属性值为逻辑型, 默认值为 False 使用 Cancel 属性使得用户可以取消未提交的改变, 并把窗体恢复到先前状态 取值为 True 时, 按 Esc 键相当于用鼠标单击了该命令按钮 在一个窗体中只能有一个命令按钮的 Cancel 属性值为 True, 当某个命令按钮的 Cancel 属性值被设置为 True 后, 该窗体中的其他所有按钮的 Cancel 属性将被自动设置为 False

51 40 Visual Basic 程序设计教程 取值为 False 时,Esc 键无效 3. Default 属性 Default 属性是命令按钮的特有属性, 以确定命令按钮是否是窗体默认的命令按钮 属性值为逻辑型, 默认值为 False 取值为 True 时,Enter 键有效, 按下 Enter 键相当于用鼠标单击了该命令按钮 在一 个窗体中只能有一个命令按钮的 Default 属性值为 True 当某个命令按钮的 Default 属性 值被设置为 True 后, 该窗体中的其他所有命令按钮的 Default 属性值将被自动设置为 False 取值为 False 时,Enter 键无效 4. Enabled 属性 Enabled 属性用来决定命令按钮是否能够对用户产生的事件作出反应 值为 True 时, 表示按钮可用 ; 值为 False 时, 表示按钮在程序运行时不可用 5. Style 属性和 Picture 属性 命令按钮上除了可以显示文字外, 还可以显示图形 若要显示图形, 首先应将 Style 属性设置为 1, 然后在 Picture 属性中设置要显示的图形文件 6. Value 属性 Value 属性用来指示该按钮是否可选 值为 True 时, 表示已选择该按钮 ; 值为 False ( 默认 ) 时, 表示没有选择该按钮 该属性在设计时不可用, 只能在程序运行期间引用或 设置 命令按钮的常用事件 命令按钮最常用的是 Click 事件 下面通过具体实例说明命令按钮的应用 例 2.5 设计一个应用程序, 在窗体上有 显示 清除 两个命令按钮, 单击 显示 按钮, 在窗体上显示 Visual Basic 6.0 程序设计, 同时, 显示 按钮不可用 ; 单击 清除 按钮, 清除窗体上显示的所有文字, 同时 清除 按钮不可用, 但 显示 按钮恢复为可用 步骤 : (1) 启动 VB, 创建一个新的工程, 在窗体上添加两个命令按钮 Command1 Command2 (2) 设置各控件属性值, 如表 2.5 所示 表 2.5 控件属性设置 对象名属性名属性值 Command1 Caption 显示 Command2 Caption 清除 科学出版社职教技术出版中心

52 第 2 章窗体和基本控件 41 (3) 在 Command1_Click 事件中编写如下代码 : Private Sub Command1_Click() Print "Visual Basic 6.0 程序设计 " Command1.Enabled = False Command2.Enabled = True 在 Command2_Click 事件中编写如下代码 : Private Sub Command2_Click() Form1.Cls Command2.Enabled = False Command1.Enabled = True (4) 程序调试和运行 单击 显示 按钮后, 程序运行结果如图 2.15 所示 例 2.6 编写设置密码程序, 设定密码为 hello 程序运行时, 用户在左侧文本框中输入密码, 然后单击 确定 命令按钮, 程序将核对用户输入的密码与事先设定的密码是否一致 如果一致, 则在右侧文本框中显示 密码正确, 继续进行! ; 若不一致, 则显示 密码错, 重新输入! 程序运行结果如图 2.16 所示 图 2.15 例 2.5 的程序运行结果 图 2.16 例 2.6 的程序运行结果 步骤 : (1) 创建界面 在窗体 Form1 中添加三个命令按钮 Command1 Command2 Command3, 两个文本框 Text1 和 Text2 (2) 设置属性 属性设置如表 2.6 所示 ( 名称属性取默认值 ) 表 2.6 控件属性设置 对象名 属性名 属性值 Form1 Caption 设置密码程序 Text1 Text 空 Text1 PasswordChar * Text2 Text 空 Command1 Caption 确定 Command2 Caption 清除 Command3 Caption 退出 &Q

53 42 Visual Basic 程序设计教程 (3) 编写代码 Private sub Command1_Click() pass=text1.text If pass="hello" Then Text2.Text=" 密码正确, 继续进行!" Else Text2.Text=" 密码错, 重新输入!" End If Private Sub Command2_Click() Text1.Text = "" Text2.Text = "" Private Sub Command3_Click() End 2.6 焦点 焦点是接收用户鼠标和键盘输入的能力 当对象具有焦点时, 可接收用户的输入 窗体上的控件对象成为活动对象时, 称为获得焦点 比如, 文本框输入数据时, 文本框首先获得焦点, 之后才可以输入数据 当对象得到或失去焦点时, 会产生 GotFocus 或 LostFocus 事件 对象得到焦点时触发 GotFocus 事件 ; 对象失去焦点时触发 LostFocus 事件 窗体和大多数控件支持这两个事件 用户除了使用鼠标单击可以获得对象的焦点之外, 还可以在代码中用 SetFocus 方法获得焦点 其语法格式是 : 对象.SetFocus 只有在窗体成为活动窗体时, 才能设置窗体上对象的焦点 所以, 不能在窗体的 Load 事件过程中使用此方法, 否则会出现程序运行错误 不能获得焦点的对象没有此方法, 如 Frame 和 Label 等不需要输入操作的控件, 因而也得不到焦点 另外, 能否获得焦点还取决于对象的特性, 主要是对象的 Enabled 属性和 Visible 属性 当 Enabled 属性值为 False 时, 该对象不能获得焦点 ; 当 Visible 属性值为 False 时, 该对象不可见, 也无法获得焦点 例 2.7 单击 确定 按钮,Text2 获得焦点,Text1 失去焦点同时背景变成蓝色 步骤 : (1) 创建一个新的工程, 在窗体上设置一个标签, 两个文本框, 一个命令按钮 (2) 将命令按钮的 Caption 设置为 确定 (3) 编写如下事件过程 : Private Sub Command1_Click() 科学出版社职教技术出版中心

54 第 2 章窗体和基本控件 43 Text2.SetFocus ' 单击按钮时,Text1 失去焦点,Text2 获得焦点 Private Sub Text1_LostFocus() Text1.BackColor = vbblue 'Text1 失去焦点后变成蓝色 Label1.Caption = "Text1 在失去焦点时变成蓝色!" ' 在 Label1 中显示文字 (4) 调试和运行程序, 运行结果如图 2.17 所示 图 2.17 例 2.7 的程序运行结果 本章小结 本章介绍了 VB 窗体 焦点的概念, 阐述了窗体的常用属性 事件和方法, 讲述了标签 文本框和命令按钮的常用属性 事件和方法 然后通过几个简单的程序实例, 介绍了这些基本控件的使用 通过本章的学习, 应该掌握窗体及标签 文本框 命令按钮的常用属性和事件, 在界面设计时能够选择合适的控件, 并进行相应属性的设置及代码编写

55 第 3 章 VB 语言基础 本章要点 数据类型 常量和变量 运算符 表达式 常用内部函数 3.1 数据类型 数据是程序处理的对象, 每一个数据必定属于一种特定的数据类型, 不同类型数据 的取值范围以及它们在计算机中的存储形式不同, 对其操作也有很大区别 VB 的数据类型可分为标准数据类型和用户自定义数据类型两大类 标准数据类型又 称为基本数据类型, 它是由 VB 直接提供给用户的数据类型, 用户不用定义就可以直接 使用 ; 用户自定义数据类型是由用户在程序中以标准数据类型为基础, 并按照一定的语法规则创建的数据类型, 它必须先定义, 然后才能在程序中使用 VB 数据类型如图 3.1 所示 科学出版社职教技术出版中心 图 3.1 VB 数据类型 标准数据类型 标准数据类型是系统定义的数据类型 表 3.1 所示列出了 VB 提供的几种标准数据类型

56 第 3 章 VB 语言基础 45 表 3.1 VB 的标准数据类型 数据类型 类型符 字节数 取值范围 Byte( 字节型 ) 无 1 0~255 Boolean( 逻辑型 ) 无 2 True 和 False Integer( 整型 ) % ~32 767, 小数部分四舍五入 Long( 长整型 ) & ~ , 小数部分四舍五入 Single( 单精度型 )! 4 Double( 双精度型 ) # 8 负数 : E+38~ E-45 正数 : E E+38 负数 : D+308~ D-324 正数 : D-324~ D+308 Currency( 货币型 ~ Date( 日期型 ) 无 8 公元 100 年 1 月 1 日 ~9999 年 12 月 31 日 String ( 定长字符型 ) String*size ( 变长字符型 ) Variant ( 数值变体型 ) Variant ( 字符变体型 ) $ 字符串长度 1~ 字符 (64KB) $ 字符串长度 0~ 大约 20 亿个字符 (2 31 ) 无 16 任何数值, 最大可达 Double 的范围 无 字符串长度 与变长度字符串有相同的范围 Object( 对象型 ) 无 4 可供任何对象引用 1. 数值型数据在 VB 语言中, 数值型数据是指能够进行加 减 乘 除 整除 乘方和取模 (Mod) 等运算的数据 它包括整数类型和实数类型两大类 (1) 整数类型 : 不带小数点和指数符号的数 整数类型又分为字节型 整型和长整型三种数据类型 1 Byte( 字节型 ): 主要用于二进制文件的读写, 在内存中占 1B, 存储 0~255 之间的无符号整数, 不能表示负数 2 Integer( 整型 ): 在内存中占 2B 可以在数据后面加类型符 % 来表示整型数据 例如 : % 3 Long( 长整型 ): 在内存中占 4B 长整型数据中不可以有逗号分隔符, 可以在数据后面加类型符 & 表示长整型数据 例如 : & (2) 实数类型 : 带有小数部分的数 实数类型又分为单精度实型 双精度实型和货币类型三种 VB 中单精度实型和双精度实型数据都有两种表示方法 : 定点表示法和浮点表示法 1 定点表示法 : 日常生活中普遍采用的计数方法 在这种表示方法中, 小数点的位置是固定的, 此方法书写简单, 适合表示那些大小适中的数 单精度实型 (Single) 数据在内存中占 4B, 最多可表示 7 位有效数字, 精确度为 6

57 46 Visual Basic 程序设计教程 位, 可在数据后面加类型符!, 如 5874! 双精度实型 (Double) 数据在内存中占 8B, 最多可表示 15 位有效数字, 精确度为 14 位, 可在数据的后面加类型符 #, 如 # 2 浮点表示法 : 当一个数特别大或者特别小时, 可以采用科学计数法表示, 如 由于在计算机中无法输入上标, 所以 VB 用一个大写英文字母 ( 单精度实型数用字母 E, 双精度实型数用字母 D) 表示底数 10 例如, 上面两个数可以 表示为 1.234E-4 和 D12 可见, 浮点数由三部分组成 : 尾数部分 字母 E 或 D 指数部分 尾数部分既可以 是整数, 也可以是小数, 正号可省略 ; 指数部分是包括正负号在内不超过 3 位数的整数, 正号可省略 在这种表示方法中小数点的位置是不固定的, 但是在输入时, 无论将小数点放在何 处,VB 都会自动将它转化成尾数的整数部分为 1 位有效数字形式 ( 即小数点在最高有效 位的后面 ), 这种形式的浮点数叫做规格化的浮点数 3 货币类型 : 在内存中占 8B, 可以保存精度特别重要的数据, 用于货币计算与定 点计算 一个货币型数据整数部分最多有 15 位, 没有指数形式, 精确到小数点后 4 位, 超过 4 位的数字将被四舍五入 来表示货币类型数据, 如 @ 表示数值型数据时, 要根据实际情况选用恰当的数据类型, 才能加快运算速度, 提 高运算效率 例如, 如果表示整数 265, 就应当选择整型 (Integer); 如果表示含小数的 实数 12.27, 就应当选择单精度浮点型 (Single) 2. 字符串型数据 字符串 (String) 是由一对双引号括起来的一个字符序列 双引号称为字符串的定界 符 字符串中可以包含 ASCII 字符或中文汉字, 一个汉字或一个英文字母都是一个字符, 在内存中占 2B 例如,"2011ABCD" " 辽宁沈阳 " 注意 : 字符串中字母的大小写是有区别的, 如 "ABC" 与 "abc" 是不相等的 在 VB 中, 字符串型数据可分为变长字符串和定长字符串两种 科学出版社职教技术出版中心 (1) 变长字符串 : 它的长度是可以变化的, 在计算机中为其分配的存储空间也是随 着字符串的实际长度的变化而变化的, 变长字符串中最多可容纳大约 20 亿个字符 (2 31 ) (2) 定长字符串 : 它的长度固定不变, 在计算机中为其分配的存储空间也是固定不 变的, 而不论字符串实际长度如何, 定长字符串最多可容纳 64K 字符 (2 16 ) 注意 : 程序代码中的字符串需要加上定界符双引号, 但输出一个字符串时并不显示 双引号, 运行程序时从键盘上输入一个字符串也不需要输入双引号, 如图 3.2 所示 图 3.2 字符串示例

58 第 3 章 VB 语言基础 日期型数据 日期型 (Date) 数据可以表示日期和时间, 表示的日期范围为 100 年 1 月 1 日 ~9999 年 12 月 31 日, 表示的时间范围为 00:00:00~23:59:59 一个日期型数据在内存中占用 8B, 以浮点数形式存储 日期型数据的表示方法有一般表示法和序号表示法两种 (1) 一般表示法 : 它是用一对 # 将日期和时间前后括起来的表示方法 例如, #Sep2011# # :2:40AM# #20/9/ :15:32PM# 等 日期可以用 /, - 分隔开, 可以是年 月 日, 也可以是月 日 年的顺序 时间必须用 : 分隔, 顺序是时 分 秒 在日期类型的数据中, 不论年 月 日按照何种顺序排列,VB 会自 动将其转换成 mm/dd/yy( 月 / 日 / 年 ) 的形式 如果日期型数据不包括时间, 则 VB 会自动 将该数据的时间部分设置为午夜 0 点 ; 如果不包括日期, 则 VB 会自动将该数据的日期 部分设置为公元 1899 年 12 月 30 日 (2) 序号表示法 : 用来表示日期的序号是双精度实数,VB 会自动将其解释为日期和 时间 其中, 序号的整数部分表示日期, 小数部分表示时间, 午夜为 0, 正午为 0.5 可 以对日期型数据进行运算 通过加减一个整数来增加或减少天数, 通过加减一个分数或小数来增加或减少时间 例如, 加 16 就是加 16 天, 而减掉 1/6 就是减去 4 小时 4. 逻辑型数据 逻辑型 (Boolean) 数据用于表示逻辑判断的结果, 只有 True 和 False 两个值, 分别表示真和假, 默认值为 False 一个逻辑型数据在内存中占 2B 逻辑型数据常作为程序的转向条件, 以控制程序的流程 逻辑型数据可以转换成整型数据, 规则是 : True 转换为 -1,False 转换为 0 其他类型数据也可以转换成逻辑型数据, 规则是 : 非 0 数转换为 True,0 转换为 False 5. 对象型数据 对象型 (Object) 数据用于保存应用程序中的对象, 如文本框 窗体等 对象型数据用 4B 来存储 可以用 set 语句指定一个被声明为 Object 的变量, 去调用应用程序所识别的任何实际对象 例 3.1 编写程序, 单击命令按钮, 可将该按钮的显示文字 Command1 改为 欢迎, 且字体为黑体, 字号为 16 号 步骤 : (1) 创建一个新的工程, 窗体名默认为 Form1, 标题默认也是 Form1 (2) 在窗体上添加一个 CommandButton 控件, 标题默认为 Command1 (3) 双击命令按钮, 在代码窗口中编写如下代码 : Private Sub Command1_Click() Dim a As Object

59 48 Visual Basic 程序设计教程 Set a = Command1 a.font = " 黑体 " a.fontsize = 16 a.caption = " 欢迎 " 该程序运行初始状态如图 3.3 所示, 单击命令按钮后, 结果如图 3.4 所示 图 3.3 例 3.1 程序的初始状态 图 3.4 例 3.1 程序的运行结果 6. 变体型数据 变体型 (Variant) 数据是一种特殊的数据, 用于存储一些不确定类型的数据 它可以存储除了固定长度字符串类型以及用户自定义类型以外的上述任何一种数据类型 在 VB 中所有未定义而直接使用的变量默认的数据类型为变体型 通过 VarType( ) 或 Typename( ) 函数可以检测 Variant 型变量中保存的具体的数据类型 Variant 数据类型包含三种特殊的数据 :Empty Error 和 Null Empty: 未赋值的可变类型变量的值 Error: 表示在过程中出现错误时的特殊值 Null: 表示变量不含有效数据 例 3.2 编写程序验证, 在程序运行期间变体型变量的不同类型的赋值 步骤 : (1) 创建一个新的工程 (2) 双击窗体任意位置, 打开代码窗口 编写 Form 的 Click 事件代码如下 : Private Sub Form_Click() Dim a 'a 默认为 Variant 类型 Form1.FontSize = 12 a = "20" Print "a 的值是 "; a, " 变量 a 的类型为 :"; TypeName(a) a = a - 4 Print "a 的值是 "; a, " 变量 a 的类型为 :"; TypeName(a) a = "A" & a Print "a 的值是 "; a, " 变量 a 的类型为 :"; TypeName(a) 例 3.2 程序的运行结果如图 3.5 所示 科学出版社职教技术出版中心 图 3.5 例 3.2 程序的运行结果

60 第 3 章 VB 语言基础 自定义数据类型 在 VB 中, 除了上述介绍的标准数据类型外,VB 还提供了让用户自定义的数据类型, 它由若干个标准数据类型组成, 类似于 C 语言中的结构体类型 格式 : Type 自定义数据类型名元素名 1 As 类型名元素名 2 As 类型名 元素名 n As 类型名 End Type 说明 : (1) 自定义数据类型名 是要定义的数据类型的名字, 其命名规则和后面要讲到的变量命名规则相同 ; 元素名 也遵守相同的规则 (2) 类型名 可以是任何基本数据类型或已定义的自定义数据类型 (3) 自定义类型中的元素类型可以是字符串, 但必须是定长的字符串 (4) 自定义类型需在标准模块 (.bas) 中定义, 默认作用域为 Public 例如, 对于一个学生的 姓名 学号 性别 年龄 成绩 等数据, 为了方便处理数据, 常常需要把这些数据定义成一个新的数据类型 ( 如 stutype 类型 ) Type stutype name As String*4 num As String*8 sex As String*2 age As Integer score As Single End Type 一旦自定义类型后, 就可以在变量声明时使用该类型 例如 : Dim student As stutype 引用变量的格式为 : 变量名. 元素名例如,student.name student.num student.score 等 枚举类型 当一个变量只有几种可能的取值时, 可以定义为枚举类型, 即将该变量的取值一一列举出来, 该变量的取值只限于列举出来的值的范围 这种方法可以提高程序的阅读性并减少错误 枚举类型可以在窗体模块 标准模块或公用类模块的声明部分使用 Enum 语句来定义 格式 : [Public Private] Enum 枚举名称

61 50 Visual Basic 程序设计教程 成员名 1 [= 常数表达式 ] 成员名 2 [= 常数表达式 ] End Enum 说明 : (1) 如果使用关键字 Public, 表示定义的枚举类型在整个工程中都有效 如果使用关 键字 Private, 表示定义的枚举类型只在声明的模块中有效 关键字 Public 或 Private 都可 省略, 默认为 Public (2) 枚举名称 是要定义的枚举类型的名字, 成员名 是要定义的枚举类型的组 成元素的名字, 它们都应遵循标识符的命名规则 (3) 常数表达式 是可选的, 如果省略, 在默认情况下, 枚举中的第一个成员被初 始化为 0, 其后的成员则被初始化为比其前一个成员大 1 的数值 例如 : Public Enum Workday Monday Tuesday Wednesday Thursday Friday Saturday Sunday End Enum 此例定义了一个枚举类型 Workday, 它包含七个成员, 值依次为 (4) 如果不省略 常数表达式, 可以用赋值语句给枚举中的成员赋值, 所赋的值可以是任何长整型的数 3.2 常量与变量 一个完整的程序要做三件事 : 获取数据 处理数据和输出数据 在程序执行过程中数据的存储及中转大多是通过变量来实现 可以将变量理解为一个容器, 它有自己的名字 ( 变量名 ) 和容量 ( 变量类型 ) 常量和变量类似, 但其存储的值是不变的 常量 常量是在程序运行过程中其值保持不变的量, 例如, 数值 字符串等 在 VB 中, 常量可以分为一般常量和符号常量两种 1. 一般常量 科学出版社职教技术出版中心 一般常量就是在程序中以直接明显的形式给出的数据 根据常量的数据类型, 一般常量分为数值常量 字符型常量 逻辑型常量和日期型常量 (1) 数值常量 由正号 负号 数字和小数点组成, 例如, E-6( 单

62 第 3 章 VB 语言基础 51 精度型 ) 7.45D3( 双精度型 ) 等 数值型常数除了可以用十进制数来描述, 还可以用十六进制数或八进制数来表示 各种数值型常数表示方法如下 : 1 十进制数 例如, 八进制数 以 &O 或 & 为引导, 其数据范围为 &0~&177777( 整型数据 ) 或 &0~ & &( 长整型数据 ) 对于长整型数据还要以 & 结尾, 例如,&O & &O & 3 十六进制数 以 &H 为引导, 其后的数据位数为 1~4 位 ( 整型数据 ) 或 1~6 位 ( 长 整型数据 ), 对于长整型数据也要以 & 结尾, 例如,&H47CB &H5F &HFF55CC& 等 信息 注意 : 在 VB 中, 数值型数据均有取值范围, 如果超出规定的范围, 将提示 溢出 (2) 字符型常量 由一对双引号括起来的字符串组成, 例如,"AB" " 学习 VB" 注意 : 1 如果一对双引号中不包含任何字符, 则称该字符串为空字符串 ; 如果双引号中字符为空格时, 则称该字符串为空格字符串 这两个字符串是有区别的, 空字符串的长度为 0, 空格字符串的长度为其空格个数 2 双引号必须是西文中的引号 (3) 逻辑型常量 逻辑常量只有 False( 假 ) 和 True( 真 ) 两个值 (4) 日期型常量 由一对 # 号括起来的日期形式的字符组成, 例如,# :45:21# #Oct 1,2011# 等 2. 符号常量 符号常量是在程序中用符号表示的常数 在程序中经常要多次使用同一个常数 在 VB 中, 符号常量有如下两种 1) 自定义符号常量例如, 在程序中经常要用到圆周率 π( ), 但如果每次用到 π 时都重复录入 是不方便的 VB 允许用一个符号来代替永远不变的数值或字符串常量, 称这个符号为符号常量, 其定义格式如下 : Const 符号常量名 [As 类型 ]= 表达式其中, 符号常量名的命名规则与变量名命名规则相同 ; 类型 用来声明常量类型, 可以是表 3.1 中的任一数据类型 ; 表达式 由数值常量 字符串等常量及运算符组成, 可以包括前面定义过的常量 例如 : Const pi= ' 定义单精度符号常量 pi, 值为 Const min As Integer=20 ' 定义整型符号常量 min, 值为 20 Const num#=12.5 ' 定义双精度符号常量 num, 值为 12.5 符号常量可以是具有一定含义 容易理解和记忆的字符 在程序中, 凡出现该常量的地方, 都用该符号常量代替, 如果要想改变某一常量的值, 则只需改变程序中声明该符号常量的一条语句即可

63 52 Visual Basic 程序设计教程 2) 系统符号常量除了上述方法可以自定义符号常量外,VB 系统和控件还提供了大量可以直接使用的符号常量, 称为系统符号常量, 如 vbblue vbred, 这些常量为程序设计提供了方便 例如, 设置文本框 (Text1) 的背景颜色为蓝色时, 可使用语句 : Text1.BackColor=vbBlue 'vbblue 为 VB 提供的符号常量 系统符号常量可与对象 属性和方法一起在应用程序中使用 这些常量位于对象库中, 在 对象浏览器 中的 Visual Basic(VB) Visual Basic for Applications(VBA) 等对象库中都列举了 VB 的常量 选择 视图 菜单中的 对象浏览器 命令, 可调出 对象浏览器 窗口, 如图 3.6 所示, 在 对象浏览器 窗口中可以查看系统符号常量 图 3.6 对象浏览器 窗口 在 所有库 下拉列表框中选择 VB VBA 工程 1 等选项, 即选择了相应的对象库, 再在 类 列表框选择组名称, 即可在其右边的 成员 列表框中列出相应的系统符号常量 属性和方法名称 选中一个名称后, 在 对象浏览器 窗口底部的文本框中将显示该常量的功能 图 3.6 显示的是系统提供的颜色常量 使用标准符号常量可以使程序变得易于阅读和编写 同时, 标准符号常量值在 VB 更高的版本中可能还有改变, 标准符号常量的使用也可使程序保持兼容性 例如, 窗体对象的 WindowsState 属性可接受的标准符号常量有 vbnormal( 正常 ) vbminimized( 最小化 ) 和 vbmaximized( 最大化 ) 变量 变量是在程序运行中其值可以发生改变的量, 实际上代表一些临时的内存单元, 在这些内存单元中存储着数据, 在应用程序的执行过程中, 变量的内容因程序的运行而变化 变量具有名字和数据类型 在使用变量前先声明变量名和类型, 系统为它分配存储单元 ( 地址和大小 ) 1. 变量的命名规则 科学出版社职教技术出版中心 变量名是代表数据的一个名称, 通过变量名引用它所存储的值 变量的命名必须遵循以下规则 (1)VB 变量名只能用字母 ( 含汉字 ) 数字和下画线组成, 第 1 个字符必须是字母

64 第 3 章 VB 语言基础 53 或汉字 例如,sum xyz a123 均为合法的变量名, 而 12Ab $ABC 是不合法的 (2) 变量名的字符数不得超过 255 个字符 (3) 变量名不能与关键字同名 关键字是 VB 使用的词, 是语言的组成部分, 例如, 不能用 Print 作为变量名 (4) 变量名不能与过程名或符号常量同名 (5) 变量名不区分大小写 例如,MystrING 和 mystring 是同一个变量名 (6) 变量名在同一个范围内必须是唯一的 注意 : 1 变量命名时尽可能简单明了, 见名知义, 如用 sum 代表求和,average 代表求平均数 变量名不要过长, 以免影响阅读和书写 2 变量名不能包含小数点 空格或嵌入! % & 等字符 下面是命名错误的变量名 123a X-y Const Sin 张三 ' 变量名不允许以数字开头 ' 变量名不允许出现减号 ' 变量名不允许出现 VB 关键字 ' 变量名不允许出现 VB 内部函数 ' 变量名不允许出现空格 2. 变量的声明通常, 在程序中必须对变量先进行声明, 再使用变量 变量声明就是将变量名和数据类型事先通知给应用程序, 也叫做变量定义 在 VB 中变量的声明分为显式声明和隐式声明两种 1) 显式声明显式声明是指使用声明语句来定义变量名及类型, 通常有两种格式 (1) 第一种格式如下 : Dim 变量名 [As 类型 ], 变量名 [As 类型 ] 将指定的变量定义为由类型指明的变量类型 其中, 类型可使用表 3.1 中所列出的数据类型或用户自定义的类型名 方括号 [] 内的部分表示可以省略 如果省略 As 类型 部分, 则所创建的变量默认为变体类型 例如 : Dim A1 As Integer, A2 As Single Dim C1 As Double Dim D1 ' 声明 A1 为整型变量和 A2 为单精度变量 ' 声明 C1 为双精度变量 ' 声明 D1 为 Variant 类型 对于字符串变量, 根据其存放的字符串长度是否固定而分为变长字符串变量和定长字符串变量两种 声明变量为变长字符串的格式为 : Dim 变量名 As String 该类变量最多可存放约 20 亿个字符, 例如 : Dim str1 As String ' 声明 str1 为变长字符串变量

65 54 Visual Basic 程序设计教程 声明变量为定长字符串的格式为 : Dim 变量名 As String* 字符数该类型变量存放字符的个数由 String 后字符数确定, 最多可以存放约 个字符 例如 : Dim str2 As String*10 ' 声明 str2 为字符串变量, 可存放 10 个字符 对于变量 str2, 若赋予的字符数少于 10 个, 则右补空格 ; 若赋予的字符超过 10 个, 则多余部分被截去 (2) 第二种格式, 使用类型符直接声明变量 用类型符直接声明变量的格式如下 : Dim 变量名类型符例如 : Dim S1%, P! ' 声明 S1 为整型变量,P 为单精度变量 注意 : 定义变量时, 变量名与类型符之间不能有空格, 类型符如表 3.2 所示 表 3.2 类型符 数据类型整型长整型单精度双精度货币型字符型 类型符 % &! $ 无论采用第一种格式还是第二种格式声明变量, 都需要注意以下问题 首先, 一条 Dim 语句可以同时定义多个变量, 但每个变量必须有自己的类型声明, 类型声明不能共用 例如 : Dim S1%, P! 或 Dim S1 As Integer, P As Single 两种声明格式效果相同, 声明 S1 为整型变量,P 为单精度变量 若是下面的形式 : Dim P, S1% 或 Dim P, S1 As Integer 则定义了 S1 为整型变量,P 为变体类型变量 其次, 变量一旦被声明,VB 自动对各类变量进行初始化 数值型变量默认初始值为 0, 字符型变量默认初始值为空串,Variant 变量默认初始值为 Empty, 逻辑型变量默认初始值为 False, 日期型变量默认初始值为 00:00:00 2) 隐式声明隐式声明是指在程序中直接使用未声明的变量, 所有隐式声明的变量都是 Variant 类型 例如, 下面程序隐式声明了一个变量 a Private Sub Command1_Click() a=50 Print a 科学出版社职教技术出版中心 此时变量 a 没有事先声明就直接引用了, 这就是隐式声明 虽然这种方法很方便, 但不提倡这么做, 因为一旦把变量名写错, 系统也不会提示错误

66 第 3 章 VB 语言基础 55 为了避免系统因为变量未声明而出现的错误, 在 VB 中提供了强制显示声明的方法, 即只要使用一个变量, 就必须先进行变量的显示声明 遇到一个未经显示声明的变量名, VB 就会自动弹出 Variable not defined( 变量未定义 ) 的警告信息 为实现强制显示声明, 可在窗体的通用声明段或标准模块的声明段 ( 代码窗口内最上边 ) 中加上如下语句 : Option Explicit 强制声明语句也可以选择 工具 菜单中的 选项 命令, 在弹出的 选项 对话框中选择 编辑器格式 选项卡, 选中 要求变量声明 复选框, 如图 3.7 所示 图 3.7 强制显示声明变量窗口这样 VB 系统会在以后新建的类模块 窗体模块或标准模块的通用声明段内, 自动插入 Option Explicit 语句 但这种方法不会在已经编写的模块中自动插入上面的语句 3.3 运算符与表达式 运算是对数据进行加工的过程, 描述各种不同运算的符号称为运算符, 参与运算的数据称为操作数 需要两个操作数的运算符, 称为双目运算符 ; 只需要一个操作数的运算符, 称为单目运算符 例如, - 作为负号时只需要一个操作数, 是单目运算符 表达式用来表示某个求值规则, 它由运算符和小括号将常量 变量和函数按照一定的语法规则连接而成 在 VB 中, 有四种类型的表达式, 分别为算术表达式 字符串表达式 关系表达式和逻辑表达式 关系表达式和逻辑表达式也称为条件表达式 算术表达式算术表达式也称数值表达式 它是用算术运算符和小括号将数值型数据连接起来的式子, 算术表达式的运算结果为数值型 1. 算术运算符 VB 算术运算符有以下八种, 如表 3.3 所示

67 56 Visual Basic 程序设计教程 表 3.3 VB 算术运算符 运算符含义举例 + 加 =8.2 - 减 =10.0 * 乘 2.5 * 3=7.5 / 除 1 / 2=0.5 \ 整除 1 \ 2=0 Mod 取模 6 Mod 4=2 - 负号 ^ 乘方 2^3=8 说明 : (1) \ 与 / 的区别是 : \ 用于整数除法 在进行整除时, 如果参加运算的数据含有小数部分, 则先按四舍五入的原则将它们转换成整数后, 再进行整除运算 例如 : 52.2\3.7 ' 结果为 \9.4 ' 结果为 3 (2)Mod 是取模 ( 或取余 ) 运算符, 用于计算第一个操作数整除以第二个操作数的余数 若两个操作数均为整型数, 则可以直接进行整除求余运算 若两个操作数中有单精度浮点数或双精度浮点数, 则按四舍五入的原则对小数点后的部分进行处理, 再进行取余运算 运算结果的符号取决于第一个操作数的符号 例如 : 10 Mod 4 ' 结果为 Mod 5.6 ' 先四舍五入再求余数, 结果为 3 13 Mod 3 ' 结果的符号取决于第一个操作数, 结果为 1 13 Mod 3 ' 结果为 1 13 Mod 3 ' 结果为 1 2. 算术表达式及其书写规则 科学出版社职教技术出版中心 1) 算术表达式由算术运算符 小括号和运算对象 ( 包括常量 变量 函数 对象等 ) 组成的表达式为算术表达式 其运算结果为一个数值 单独一个数值型常量 变量或函数也构成一个算术表达式 例如,12*5+(17-10)/7 x sin(x) 都是算术表达式 2) 算术表达式的书写规则算术表达式与数学中代数式的书写方法不同, 在书写时应特别注意以下几点要求 π (1) 表达式中, 所有字符都必须写在同一行上 例如, 将数学式写成 VB 的 2 a + b 算术表达式为 : /(a^2 +Sqr(b)) b + 2 (2) 通过加小括号可以调整运算次序, 如 3 写成 VB 表达式为 3*(b+2)/a a (3) 代数式中省略的乘号, 在书写成 VB 表达式时必须补上, 如代数式 8a+b 2 写成

68 第 3 章 VB 语言基础 57 VB 表达式为 8*a+b^2 (4)VB 表达式中一律使用 () 且必须配对, 如代数式 3[a(b+c)] 要写成 3*(a*(b+c)) 3. 不同数据类型的转换 如果参与运算的两个数值型数据为不同类型,VB 系统会自动将它们转化为同一类 型, 然后进行运算 转换的规律是将范围小的类型转换成范围大的类型, 即 Integer Long Single Double 但当 Long 型与 Single 型数据运算时, 结果为 Double 型 注意 : 算术运算符一侧为数值型数据, 另外一侧为数字字符串或逻辑型数据, 则自动转换成为数值型后再进行运算 例如 :?10 - True ' 结果为 11, 逻辑型 True 转化为数值 -l,false 转化为数值 0?10 + "4" ' 结果为 14, 数字字符串 "4" 转化为数值 4 4. 算术运算符优先级 在一个表达式中可以出现多个运算符, 因此必须确定这些运算符的运算顺序 运算顺序不同, 所得的结果也就不同 算术运算符的运算顺序从高到低如表 3.4 所示 表 3.4 算术运算符优先级 优先级 运算符 含 义 1 ^ 乘方 2 - 取负 3 * 乘法 3 / 浮点除法 4 \ 整除 5 Mod 取模 6 + 加法 6 - 减法 其中, 乘 除和加 减分别为同级运算符, 同级运算从左向右进行 在表达式中加小括号 () 可以改变表达式的求值顺序 例 3.3 创建一个工程, 单击窗体后, 直接输出运行结果 步骤 : (1) 首先创建一个窗体 (2) 设置窗体的 Caption 属性为 算术运算表达式 (3) 单击窗体, 打开代码编辑器, 在窗体 Load 事件中输入以下语句 : Private Sub Form_Load() Dim a, b As Integer Dim x, y As Single

69 58 Visual Basic 程序设计教程 Dim d As Double, c As Currency (4) 单击窗体, 打开代码编辑器, 在窗体 Click 事件中输入以下语句 : Private Sub Form_Click() a = 5 x = 8 y = x / a b = x Mod a d = x ^ 3 a = d \ a c = (a + b)* (d y)/ x Print "a="; a, "b=;"; b Print "x="; x, "y=;"; y Print "c="; c, "c=;"; c (5) 运行上述程序, 单击窗体, 在窗体上输出运行结果, 如图 3.8 所示 图 3.8 例 3.3 的程序运行结果 字符串表达式 1. 字符串运算符 字符串运算符有两个, 一个是 + 运算符, 另一个是 & 运算符, 它们均可以实 现将两个字符串首尾相连 使用 & 运算符时应注意, 运算符 & 前后都应加一个空 格, 以避免 VB 系统认为是长整型变量 2. 字符串表达式 字符串表达式是由字符串运算符和小括号将字符常量 变量和函数连接起来的式子, 其运算结果可能为数值型, 也可能为字符型 例如 :? "VB"+" 中文版 " ' 结果为 "VB 中文版 ", 类型为字符型? "VB" & " 中文版 " ' 结果为 "VB 中文版 ", 类型为字符型? "12" & "34" ' 结果为 "1234", 类型为字符型? "12"+34 ' 结果为 46, 类型为数值型 3. 运算过程中的类型转换 科学出版社职教技术出版中心 (1) + 运算符 当运算符两边的操作数均为字符型时, 进行字符串连接运算 ; 当 运算符两边的操作数均为数值型时, 进行算术运算 ; 如果一个为数字字符串, 另一个为数值型数据, 则先自动将数字字符串转换为数值, 然后进行算术运算 ; 如果一个为非数

70 第 3 章 VB 语言基础 59 字字符串, 另一个为数值型数据, 则会弹出对话框, 提示出错信息为 类型不匹配 例如 :? "VB" ' 操作类型不匹配, 出错 (2) & 运算符 运算符两边的操作数可以是字符型数据, 也可以是数值型数据, 进行数据连接以前, 先将它们转换为字符型数据, 然后再连接 例如 :? " 辽宁 " & " 沈阳 " ' 结果为 " 辽宁沈阳 "? " 辽宁 " & 125 ' 结果为 " 辽宁 125" 注意 : 在使用 + 运算符时有时可能无法确定是做加法还是做字符串连接 为避免混淆使程序代码具有可读性, 建议使用 & 连接符进行连接 关系表达式 关系表达式用于对两个同类型表达式的值进行比较, 比较的结果为逻辑值 True( 真 ) 或 False( 假 ), 如 a>b,3>5,"3y"<"jqk" 都是合法的关系表达式 由于它常用来描述一个给定条件, 所以也称为 条件表达式 1. 关系运算符 VB 提供的常用的关系运算符有六种, 如表 3.5 所示 表 3.5 VB 关系运算符 关系运算符含义相当于数学符号 = 等于 = > 大于 > < 小于 < >= 大于或等于 <= 小于或等于 <> 不等于 2. 关系表达式 关系表达式是用关系运算符和小括号将两个相同类型的表达式连接起来的式子 关系表达式的格式为 : 表达式 1 关系运算符表达式 2 先计算表达式 1 和表达式 2 的值, 得出两个相同类型的值, 然后再进行关系运算符所规定的关系运算 如果关系表达式成立, 则计算结果为 True, 否则为 False 例如:? 3+5>6+7 ' 运算符两边为数值, 比较结果为 False? "ABC"<"ABCD" ' 运算符两边为字符串, 比较结果为 True 注意 : 1 表达式 1 和表达式 2 是两个类型相同的表达式, 可以是算术表达式, 也可以是字符串表达式, 还可以是其他的关系表达式

71 60 Visual Basic 程序设计教程 2 所有关系运算符的优先顺序均相同, 如要想改变运算的先后顺序, 需要使用小括 号括起来 3. 比较规则 (1) 对于数值型数据, 按其数值的大小进行比较 (2) 对于字符串型数据, 从左到右依次按其每个字符的 ASCII 码值的大小进行比较, 如 果对应字符的 ASCII 码值相同, 则继续比较下一个字符, 以此类推, 直到遇到第一组 ASCII 码不相等的字符为止 (3) 日期型数据将日期看成 yyyymmdd 格式的 8 位整数, 按数值大小进行比较, 如 #10/08/2011#>#10/08/2010#, 比较结果为 True 例 3.4 创建一个工程, 单击窗体后, 直接输出比较结果 步骤 : (1) 创建一个窗体 (2) 设置窗体的 Caption 属性为 关系表达式 (3) 单击窗体, 打开代码编辑器, 在窗体 Click 事件中输入以下语句 : Private Sub Form_Click() a = 20 b = 45 Print "a="; a, "b="; b Print "a>b" & " 结果是 "; a > b, "a<b" & " 结果是 "; a < b Print "a>=b" & " 结果是 "; a >= b, "a<=b" & " 结果是 "; a <= b Print "a=b" & " 结果是 "; a = b, "a<>b" & " 结果是 "; a <> b (4) 运行改程序, 单击窗体, 在窗体上输出运行结果, 如图 3.9 所示 逻辑表达式 图 3.9 例 3.4 的程序运行结果 关系表达式只能表示一个条件, 即简单条件, 如 x>0 代表了数学表达式 x>0, 但时常会遇到一些比较复杂的条件, 如 0<x<8, 它实际上是 x>0 并且 x<8 两个 简单条件的组合 逻辑表达式就是用来表示 非 不但 而且 或 或 等复杂条件的 1. 逻辑运算符 科学出版社职教技术出版中心 逻辑运算符是进行各种逻辑运算所使用的运算符,VB 逻辑运算符如表 3.6 所示

72 第 3 章 VB 语言基础 61 表 3.6 VB 逻辑运算符 运算符实例结果 And Or Not Xor Eqv Imp (8 > 6) And (8 Mod 3=0) (3 >= 0) And (-5 < 0) 16 Mod 4=0 Or 16 Mod 3=0 (2 <= 0) And (-5 > 0) Not(5>0) Not(5<0) (2>1) Xor (4<1) (2>1) Xor (3>1) (5>4) Eqv (5<1) (5>2) Eqv (5>1) (5>3) Imp (5<1) (5>2) Imp (4>1) False True True False False True True False False True False True 逻辑运算的优先级由高到低顺序为 :Not And Or Xor Eqv Imp 2. 逻辑表达式 逻辑表达式是用逻辑运算符将两个关系式连接起来的式子, 其一般格式为 : 逻辑量逻辑运算符逻辑量 VB 中的逻辑量可以为逻辑常量 逻辑变量 逻辑函数和关系表达式四种 逻辑表达式的运算结果仍为逻辑型数据, 即 True 或 False 设 A 和 B 是两个逻辑型数据, 逻辑运算的结果如表 3.7 所示 表 3.7 逻辑运算真值表 a b Not a a And b a Or b a Xor b a Eqv b a Imp b False False True False False False True True False True True False True True False True True False False False True True False False True True False True True False True True Not 为单目运算符, 用于对逻辑值取反 ; 如果有多个条件做 And 运算, 只有所有条件均为真, 运算结果才为真, 只要有一个为假, 结果就为假 ; 如果有多个条件做 Or 运算, 只要有一个为真, 运算结果就为真, 只有全部为假时, 结果才为假 例如, 由下列条件写出相应的 VB 逻辑表达式 (1) 条件 x 是 5 或 7 的倍数 写成逻辑表达式为 :x Mod 5=0 Or x Mod 7=0 (2) 条件 x 0 写成逻辑表达式为 :Not Abs(x)=0, 也可写成 Abs(x)<>0 (3) 条件 -5<x<5 写成逻辑表达式为 :x>-5 And x < 5 (4) 条件 x>10 或 x<5 写成逻辑表达式为 :10 < x Or x < 5 (5) 判断变量 x y 均不为 0 的逻辑表达式为 :x * y <>0

73 62 Visual Basic 程序设计教程 (6) 判断整型变量 a 是正的奇数的逻辑表达式为 :a > 0 And a Mod 2 <>0 注意 : 赋值运算符 = 和关系运算符 = 含义的不同 运算符的优先顺序 在一个表达式中有多种运算符时, 不同运算符的执行是有顺序的, 称这个顺序为运 算符的优先顺序 运算符的优先顺序如表 3.8 所示 表 3.8 运算符的优先顺序 优先顺序运算符类型运算符 1 ^( 乘方 ) 2 -( 取负 ) 3 * /( 乖 除 ) 算术运算符 4 \( 整除 ) 5 Mod( 求余 ) 6 + -( 加 减 ) 7 字符串运算符 & +( 字符串连接 ) 8 关系运算符 = <> < <= > >= 9 Not 10 And 11 逻辑运算符 Or 12 Xor 13 Eqv 14 例如,-2^3*6>-5 And 36/(8-2) mod 2>0 的运算顺序如下 (1) 括号里的运算 (8-2) 得 6 (2) 乘方运算 2^3 等于 8, 后取负得 -8 (3) 乘法运算 -8*6 得 -48,36/6 得 6 (4) 求余运算 6 mod 2 得 0 (5) 关系运算 -48>-5 得 False;0>0 得 False (6) 逻辑运算 False And False 结果为 False Imp 3.4 常用的内部函数 科学出版社职教技术出版中心 为了方便用户进行各种运算,VB 提供了大量的内部函数, 供用户在编程时调用 内部函数的调用格式为 : 函数名 ( 参数表 ) VB 内部函数按其功能可分为数学函数 字符串函数 转换函数 日期与时间函数和格式函数等, 下面将分别介绍

74 第 3 章 VB 语言基础 数学函数数学函数用于各种数学运算, 包括三角函数 求平方根 绝对值以及对数 指数等 表 3.9 列出了常用的数学函数 ( 与数学中的定义基本一致 ) 表 3.9 常用数学函数表 函数名函数值类型功能举例 Abs(N) 同 N 的类型取 N 的绝对值 Abs(-2.5)=2.5 N>0, Sgn(N)=+1; Sgn(5)= 1 Sgn(N) Integer N<0, Sgn(N)=-1; Sgn(-5)=-1 N=0, Sgn(N)=0 Sgn(0)=0 Sqr(N) Double 求 N 的算术平方根,N 0 Sqr(256)=16 Exp(N) Double 求自然常数 e 的幂 Exp(0)=1 Log(N) Double 求 N 的自然对数值,n>0 Log(10)=1 Sin(N) Double 求 N 的正弦值 Sin(0)=0 Cos(N) Double 求 N 的余弦值 Cos(0)=1 Tan(N) Double 求 N 的正切值 Tan(0)=0 Atn(N) Double 求 N 的反正切值 Atn(0)=0 Int(N) Integer 求不大于 N 的最大整数 Int(5.2)=5,Int(-5.2)=-6 Fix(N) Integer 将 N 的小数部分截取, 求其整数部分 Fix(5.2)=5,Fix(-5.2)=-5 说明 : (1) 函数名是 VB 关键字, 调用函数时一定要书写正确, 参数 应该在函数有意义区间内取值 (2) 表中的 N 表示数值表达式 ; 在三角函数中, 参数 N 以弧度表示 遇到角度必须转换为弧度, 如 Sin(45 ) 应写成 Sin(3.14/180*45) (3) 四舍五入规则 : 小于 5 时舍, 大于 5 时入, 等于 5 时的舍入情况取决于前一位数, 当前一位数为偶数时舍, 为奇数时入 例如 :?Round(2.5) ' 结果为 :2?Round(1.5) ' 结果为 : 随机数函数 1. Rnd() 函数格式 :Rnd[(x)], 其中参数 x 是一个双精度浮点数, 可以省略 功能 : 可产生一个 0~1 之间 ( 大于或等于 0, 但小于 1) 的单精度随机数 下一个要产生的随机数受参数 x 的影响 (1) 当 x<0 时, 每次产生相同的随机数 (2) 当 x>0 或省略时, 每次产生不同的随机数

75 64 Visual Basic 程序设计教程 (3) 当 x=0 时, 该次产生与上次相同的随机数 说明 : 该函数产生的是一个单精度随机数, 要产生随机整数, 可利用取整函数来完 成 例如, 要产生 0~100( 包括 0, 不包括 100) 的随机整数, 可以写成 Int(Rnd*100) 产生随机整数的公式 : (1) 产生区间在 [n,m) 范围内的随机整数 :Int(Rnd*(m-n)+n) (2) 产生区间在 [n,m] 范围内的随机整数 :Int(Rnd *(m-n+1)+n) 例如, 产生 [100, 1000) 间的随机整数为 :Int(Rnd * ) 2. Randomize 语句 Rnd() 函数的运算结果取决于称为随机种子 (Seed) 的初始值 默认情况下, 每次运 行一个应用程序, 随机种子初始值是相同的, 即 Rnd() 产生相同序列的随机数 为了每 次运行时产生不同序列的随机数, 可执行如下形式语句 : Randomize[number] 例 3.5 随机产生一个两位整数, 在文本框中输出 步骤 : (1) 新建工程, 在窗体上添加一个文本框和一个命令按钮 (2) 编写如下代码 : Private Sub Command1_Click() Randomize Text1 = Int(Rnd * ) (3) 运行结果如图 3.10 所示 ( 实际运行结果值有可能不是 89, 只要是一个大于或等 于 10 并且小于 100 的数值即为正确 ) 字符串函数 图 3.10 例 3.5 程序的运行结果 VB 的字符串函数相当丰富, 常用的字符串函数如表 3.10 所示 表 3.10 VB 常用字符串函数 科学出版社职教技术出版中心 函数名 函数值 类型 功能举例 Len(C) Long 求 C 中包含的字符个数 Len("ABCD321")=7 LCase(C) String 将 C 中大写字母转换成小写字母 LCase("Abc")="abc" UCase(C) String 将 C 中小写字母转换成大写字母 UCase("aBC")="ABC"

76 第 3 章 VB 语言基础 65 函数名 函数值 类型 功能举例 续表 Space(N) String 产生 N 个空格的字符串 Len(Space(10))=10 Left(C,N) String 从字符串 C 左边截取 N 个字符 Left("Visual",3)="Vis" Right(C,N) String 从字符串 C 的最右边开始截取 N 个字符 Right("Visual",3)="ual" Mid(C,N1[,N2]) String 从字符串 C 中 N1 指定处开始, 截取 N2 个字符 Mid("Visual",2,3)="isu" Mid("Visual",2)="isual" LTrim(C) String 删除字符串 C 的前导空格 LTrim(" Visual")="Visual" RTrim(C) String 删除字符串 C 的尾部空格 RTrim("Visual ")="Visual" Trim(C) String 删除字符串 C 的前导和尾部空格 Trim(" Visual ")="Visual" Space(N) String 产生 N 个空格 Space(3)= " " StrReverse(C) String 将字符串反序 StrReverse("abcd")="dcba" InStr([N1,]C1,C2,[N 2 ])) Integer 在字符串 C1 中, 从 N1 开始到 N2 位置, 开始找 C2, 省略 N1 时从 C1 头开始找, 省略 N2 时找到 C1 尾止 InStr(2,"ABCDE","C",4)=3 InStr(2, "ABCDEF","CDE")=3 InStr("ABCDEFGH","CDE")=3 InStr("ABCDEFGH","XYZ")=0 StrComp(C1,C2,[N]) Integer 字符串比较, 若 C1>C2, 结果为 1;C1<C2, 结果为 -1;N=0 区分大小写,N=1 不区分大小写 StrComp("As","as",0)=1 说明 : (1) 表中 C 表示字符串表达式,N 表示数值表达式 (2) 数值函数 Val(C) 不能识别, 和 $ ; 空格 制表符和换行符都要从 C 中去掉 ; 当遇到字母 E 或 D 时, 将其按单精度或双精度实型浮点数处理 (3) 对于字符串截取函数 Left(C,N) 和 Right(C,N),N 的值如果为 0, 则函数值是长度为零的字符串 ( 即空串 ); 如果其值大于或等于字符串 C 中的字符数, 则函数值为整个字符串 (4)Mid(C,N1[,N2]) 中 N1 是数值表达式, 其值表示开始截取字符的起始位置, 如果该数值超过字符串 C 中的字符数, 则函数值为空串 N2 是数值表达式, 其值表示要截取的字符数, 如果省略该参数, 则函数值将包含字符串 C 中从起始位置 N1 到字符串末尾的所有字符 (5) 将一个字符串赋值给一个定长字符串变量时, 如字符串变量的长度大于字符串的长度, 则用空格填充该字符串变量局部多余的部分, 所以在处理定长字符串变量时, 删除空格的 LTrim() 和 RTrim() 函数是非常有用的 字符串函数应用举例 1 a=" good morning "? LTrim(a);"!" ' 删除字符串 a 左端空格字符, 结果为 :good morning!? Trim(a);"!" ' 删除字符串 a 两端空格字符, 结果为 :good morning! 2 b="abcdefg"? Left(b,4) ' 从字符串 b 左端截取 4 个字符, 结果为 :abcd? Mid(b,2,3) ' 从字符串 b 第 2 个字符开始截取 3 个字符, 结果为 :bcd

77 66 Visual Basic 程序设计教程? Right(b,4) ' 从字符串 b 右端截取 4 个字符, 结果为 :defg 3? Len("I am a student") ' 结果为 :14? Len(" 中国 ") ' 结果为 :2 4? "a" + space(3)+ "b" ' 结果为 :a b? String(3, "a") ' 结果为 :aaa? String(3,"abc") ' 结果为 :aaa, 仅返回首字符组成的字符串? String(3,97) ' 结果为 :aaa 5? InStr("visual basic", "bas") ' 结果为 :8? InStr(9,"visual basic", "bas") ' 从第 9 个字符开始查找, 结果为 :0 6 a=ucase("visual basic") b=lcase(a)? a,b ' 结果为 :VISUAL BASIC visual basic 转换函数 在 VB 中, 有些数据类型之间可以自动进行转换, 如数字字符串可以自动转换为数 值 但是, 多数数据类型之间不能自动进行转换, 需要 VB 提供的类型转换函数进行强 制转换 常用的转换函数如表 3.11 所示 表 3.11 VB 转换函数 函数名含义举例 Val(C) 将 C 中的数字字符转换为数值型数据 Val("123ABC")=123 Str(N) 将 N 转换成字符串 Str( )=" " Asc(C) 求字符串中第 1 个字符的 ASCII 码值 Asc("a")=97 Chr(N) 求 ASCII 码值为 N 的字符 Chr(66)="B" Round(N,X) 保留 X 位小数的情况下四舍五入取整 Round(8.89)=8.9 CBool(C) 将任何有效的数字字符串或数值转换成逻辑型值 CBool(5)=True CBool("0")=False CByte(N) 将 0~255 之间的数值转换成字节型 CByte(122)=122 CDate(C) 将有效的日期字符串转换成日期 CDate(#2011,10,1#)= CCur(N) 将数值数据 N 转换成货币型 CCur( )= CStr(N) 将 N 转换成字符串型 CStr(34)=34 CInt(C) 将 C 转换成整型 CInt( )=123 CLng(C) 将 C 转换成长整型 CInt(123)=123 CSng(C) 将 C 转换成单精度型 CSng( )= CDbl(C) 将 C 转换成双精度型 CDbl( )= 说明 : (1) 参数可以是任何类型的表达式, 究竟是哪种类型的表达式, 需根据具体函数而 定 转换之后的函数值如果超过其数据类型的范围, 将发生错误 (2)Chr() 和 Asc() 函数功能相反, 即 Chr(Asc(C)) Asc(Chr(N)) 的结果为原来各自参 数的值, 如表达式 Asc(Chr(70)) 的结果还是 70 (3)Val() 函数将数字字符串转换为数值类型, 当字符串中出现数值类型规定的字符 外的字符时, 则停止转换, 函数返回的值是停止转换前的结果 例如 : 科学出版社职教技术出版中心

78 第 3 章 VB 语言基础 67? Val("123ab4") ' 遇到字符 "a" 停止转换, 结果为 :123? Val("56.83*4") ' 遇到字符 "*" 停止转换, 结果为 :56.83? Val("26.4e7") ' 字符 "e" 为指数符号, 结果为 : (4) 将一个数值型数据转换为日期型数据时, 其整数部分转换为日期, 小数部分转 换为时间 其整数部分数值表示相对于 1899 年 12 月 30 日前后天数, 负数是 1899 年 12 月 30 日以前, 正数是 1899 年 12 月 30 日以后 例如,CDate(30.5) 的函数值为 :00:00,Cdate(-30.25) 的函数值为 :00: 日期与时间函数 日期与时间函数提供时间和日期信息, 常用日期与时间函数见表 3.12( 注 : 日期函 数中自变量 C N 表示可以是数值表达式, 也可以是字符串表达式, 其中 N 表示相对于 1899 年 12 月 31 日以后的天数 ) 表 3.12 常用日期与时间函数 函数名 功能说明 举 例 结果 Date() 返回系统日期 Date() Time() 返回系统时间 Time() 21:09:50 Now 返回系统时间和日期 Now :09:26 Month(C) 返回月份代号 (1~12) Month(" ") 10 Year(C) 返回年代号 (1752~2078) Year(" ") 2011 Day(C) 返回日期代号 (1~31) Day(" ") 1 MonthName(N) 返回月份名 MonthName(10) 十月 WeekDay() 返回星期代号 (1~7) 星期日为 1 WeekDay("2011,10,01") 7( 即星期六 ) WeekDayName(N) 根据 N 返回星期名称, 星期日为 1 WeekDayName(6) 星期五 格式输出函数格式输出函数 Format() 可以用来定制数值型 日期和时间型及字符串表达式的输出格式 其一般格式如下 : Format( 表达式 [, 格式字符串 ]) 其中, 表达式 是所输出的内容 格式字符串 规定输出的格式 格式字符串有三类 : 数值格式 日期格式和字符串格式 格式字符串要加引号 1. 数值格式化数值格式化是将数值表达式的值按 格式字符串 指定的格式输出 有关格式及举例如表 3.13 所示 表 3.13 常用数值格式化符及举例 符号含义数值表达式格式化字符串显示结果 0 实际数字小于符号位数, 数字前加 " " "000.0"

79 68 Visual Basic 程序设计教程 续表 符号 含 义 数值表达式 格式化字符串 显示结果. 加小数点 4567 " " E+ 用指数表示 "0.00E+00" 6.78E-01 E- 与 E+ 相似 ".00E-00".12E04 # 实际数字小于符号位数, 数字前后不加 "#####.####" "#####.##" $ 在数字前加 $ "$###.###" $ 在数字前加 "+###.###" 在数字前加 "-###.###" , 千分位 "##.##0.0000" 1, % 数值乘以 100, 加百分号 "####.##%" % 例 3.6 数值格式符应用举例 步骤 : (1) 创建一个新的工程, 在 Form1 窗体上创建一个命令按钮 (2) 双击命令按钮, 在代码窗口输入以下代码 : Private Sub Command1_Click() print Format(123.45, " ") Print Format(123.45, "0.0") Print Format(123.45, "####.###") Print Format(123.45, "#.#") Print Format(0.123, ".##") Print Format(0.123, "0.##") Print Format( ,"0.0e+00") Print Format( ,"0.000e-00") Print Format(123)+ Format(456) (3) 程序运行结果如图 3.11 所示 科学出版社职教技术出版中心 图 3.11 例 3.6 程序运行结果 2. 日期和时间格式化 将日期与时间类型表达式的值或数值表达式的值按指定的格式输出 相关格式如表 3.14 所示

80 第 3 章 VB 语言基础 69 表 3.14 常用日期和时间格式符 符号 作 用 符号 作 用 m 显示月份 (1~12), 个位前不加 0 mm 显示月份 (1~12), 个位前加 0 mmm 显示月份缩写 (Jan~Dec) mmmm 显示月份全名 d 显示日期 (1~31), 个位前不加 0 dd 显示日期 (1~31), 个位前加 0 ddd 显示星期缩写 (Sun~Sat) dddd 显示日期全名 dddd 显示完整日期 (yy/mm/dd) ddddd 显示完整长日期 h 显示小时 (0~23), 个位前不加 0 hh 显示小时, 个位前加 0 m 在 h 后显示分 (0~59), 个位前不加 0 mm 在 h 后显示分, 个位前加 0 s 显示秒 (0~59), 个位前不加 0 ss 显示秒, 个位前加 0 y 显示一年中的天 (1~366) yy 两位数显示年份 yyyy 四位数显示年份 (0100~9999) q 季度数 (1~4) w 星期为数字 (1~7),1 是星期日 ww 一年中的星期数 tttt 显示完整时间 ( 小时 分和秒 ) AM/PM, am/pm 12 小时的时钟 A/P, a/p 12 小时的时钟 例如 : D1=now ' :35:09? Format(D1,"d-mmmm-yy") ' 返回 20-November-12? Format(D1,"yyyy-mm-dd hh:mm") ' 返回 :35 3. 字符串格式化字符串格式化是将字符串按指定的格式进行操作, 如英文字母大小写转换显示等 常见的字符串格式符及使用举例如表 3.15 所示 表 3.15 常用字符串格式符及举例 字符由右向左填充, 当实际字符位数小于符号位数时, 字符前面要加空格作补充 Format("DDE","@@@@@") DDE & 字符由右向左填充, 当实际字符位数小于符号位数时, 字符前面不加空格作补充 Format("DDE","&&&&&") DDE < 强制小写, 实现所有字符按小写的格式显示 Format("NIKE","<@@@@") nike > 强制大写, 实现所有字符按大写的格式显示 Format("nike",">@@@@") NIKE! 强制由左而右填充字符占位符 Format("DDE","!@@@@") DDE 测试函数 VB 中提供了测试变量的数据类型的函数, 格式如下 : TypeName ( 变量名 ) 说明 : 返回值为具体的类型名, 如 Integer String 等 变体型变量未赋值之前的测试

81 70 Visual Basic 程序设计教程 结果为 Empty, 对象型变量 ( 如按钮 文本框等 ) 测试结果为该对象的一个具体类型, 即 CommandButton TextBox 等 例如 : Dim a As Variant Dim b As Integer Dim c As String Print TypeName(a) Print TypeName(b) Print TypeName(c) Print TypeName(Command1) Print TypeName(Picture1) ' 结果为 :Empty ' 结果为 :Integer ' 结果为 :String ' 结果为 :CommandButton ' 结果为 :PictureBox 3.5 VB 程序代码的书写规则 关键字和标识符 1. 关键字 关键字又称为保留字, 是 VB 系统定义的 有特定意义的词汇, 它是程序设计语言 的组成部分 在 VB 中, 当用户在编辑窗口中输入关键字时, 系统会自动识别, 并将其 首字母改为大写 2. 标识符 程序设计常常需要为一些对象命名, 然后通过名字访问这些对象, 把这些自定义的 命名称为标识符 标识符通常用于标记用户自定义的常量 变量 控件 函数和过程的名字 VB 中标识符的命名应遵循如下规则 (1) 必须以字母或汉字开头 (2) 只能由字母 汉字 数字和下画线组成, 但不能直接使用 VB 的关键字 (3) 不能超过 255 个字符, 控件 窗体和模块的名字不能超过 40 个字符 (4) 在标识符的有效范围内必须是唯一的 在定义标识符时要尽量选用一些有意义的字符, 这样可以提高程序的可读性, 例如, 姓名可以定义为 name, 三个数可以定义为 num1 num2 和 num 语句书写规则 科学出版社职教技术出版中心 语句是程序设计时使用的指令, 语句的书写必须符合 VB 的规定 VB 可以设置自动语法检测, 方法为 : 选择 工具 菜单下的 选项 命令, 在弹出的 选项 对话框中, 选中 编辑器 选项卡上的 自动语法检测 复选框, 这样, 系统对于不符合语法规则的语句就会给出错误提示, 并提示出错的原因

82 第 3 章 VB 语言基础 VB 语句书写格式 (1)VB 中每个语句以回车结束, 通常一行只写一条语句, 语句的长度不能超过 1023 个字符 如果一行写多条语句, 语句之间要用冒号 : 隔开 如果将一条语句断开换行写, 需要在语句断开处用下画线 _ 结尾, 这样就表示下一行语句与本行语句属于一条语句 注意, 下画线要与最后一个字符间隔至少一个空格 如果希望在程序代码中添加注释, 则使用单引号 ', 其后面的内容表示注释, 不参与程序代码的运行 (2)VB 能够自动对语句进行简单的格式调整, 例如, 关键字的第一个字母大写, 运算符的前后加上空格等 所以在输入时不区分大小写, 例如, 输入 print a+1, 按 Enter 键结束后,VB 会自动将其调整为 Print a + 1 (3)VB 还具有自动提示的功能 例如, 当输入对象名时, 系统会提示该对象的方法 事件等, 当输入定义变量的语句时, 系统会提示变量类型, 此时只需要选择相应项再按空格键即可, 方便了手工输入 2. 命令格式中的符号约定为了方便解释语句 方法和函数, 本书中的语句 方法和函数格式中的符号将采用以下统一约定 (1)<>: 必选参数表示符, 尖括号中的参数是必写的, 但不要输入尖括号本身 输入时如果不提供参数, 将产生语法错误 (2)[ ]: 可选参数表示符, 表示符内的参数, 用户可根据具体情况输入, 也可以省略 如果省略参数, 则 VB 会使用该参数的默认值 (3) : 为多个取一表示符, 多个选项中必须选择其中之一 (4){ }: 表示括起多个选择项 (5) : 省略叙述中不涉及的部分 (6), : 表示同类项目的重复出现 注意 : 这些特定的符号不是语句或函数的组成部分, 只是语句 函数格式的书面表示, 输入时不能输入这些符号 3.6 综合应用 例 3.7 表达式综合应用 步骤 : (1) 创建一个新的工程 双击窗体, 在 Form_Activate() 中输入如下代码 : Private Sub Form_Activate() Dim a, b, c Print " 日期数据的加减运算 " Print CDate(" ")- CDate(" ") Print CDate(" :00:00")- CDate(" ") Print Date, Time Print Date

83 72 Visual Basic 程序设计教程 Print CDate(" ")+ 16 Print: Print " 关系运算和逻辑运算 " a = 40: b = 10: c = 5 Print a + b >= a + c Print a > b And b > c, b > a And b > c Print a > b Or b > c, b > a Or c > b Print a > b Xor b > c, b > a Xor b > c Print > , 6 * 5 = 30 Print > And 6 * 5 = 30 (2) 运行上述程序, 运行结果如图 3.12 所示 在日期数据的运算中, 如果两个数据均为日期型数据, 则运算结果为双精度型数据, 表示两个日期的间隔天数 另外, 将一个 Date 型数据加减数值型数据, 其结果仍为 Date 型, 表示一个日期经过一定天数之后或之前的日期和时间 程序中的 CDate() 是转换函数, 可将括号内的字符串转换为日期型数据 ;Date() 函数可获得当前日期 例 3.8 设计一个应用程序, 求一元二次方程的根 一元二次方程的根 程序界面如图 3.13 所示 在三个文本框中分别输入一元二次方 程的三个系数 (a,b,c 必须符合 b b-4 a c 0), 单击 计算 按钮, 可计算出该方程 的实数根 图 3.12 例 3.7 程序的运行结果图 3.13 例 3.8 程序的运行界面 步骤 : (1) 创建一个新的工程 在窗体的 属性 窗口中设置 名称 属性值为 Form1, Caption 属性值为 一元二次方程的根 (2) 在窗体内添加控件, 它们的属性设置如表 3.16 所示, 所有控件的 Font 属性均为 宋体 粗体 四号, 布局如图 3.13 所示 表 3.16 一元二次方程的根 程序控件对象的属性设置 科学出版社职教技术出版中心 对象类型 对象名称 属性 属性值 窗体 Form1 Caption 一元二次方程的根 标签 Label1 Caption 系数 a Label2 Caption 系数 b Label3 Caption 系数 c Label4 Caption 一个根 Label4 Caption 另一个根

84 第 3 章 VB 语言基础 73 对象类型对象名称属性属性值 续表 Text1 文本框 命令按钮 Text2 Text3 Text 空 Text4 Text5 Command1 Caption 计算 Command2 Caption 退出 (3) 在 代码 窗口输入如下程序 : Dim a, b, c As Integer Dim r1, r2 As Double Private Sub Command1_Click() a = CInt(Text1.Text) b = CInt(Text2.Text) c = CInt(Text3.Text) r1 = (-b + Sqr(b * b - 4 * a * c))/ (2 * a)' 计算方程的一个根 r2 = (-b - Sqr(b * b - 4 * a * c))/ (2 * a)' 计算方程的另一个根 Text4.Text = r1 Text5.Text = r2 Private Sub Command2_Click() End (4) 运行程序, 输入系数 a b c, 单击 计算 按钮, 计算该方程的根 在上面的程序中, 声明了三个 Integer 类型变量 a b c, 分别用来保存系数 a b 和 c 的值 Double 类型的变量 r1 和 r2 为方程的两个根 用户输入的系数必须符合 b b-4 a c 0, 否则程序将出现错误信息 Sqr( ) 是数学函数, 用来求其系统的平方根 本章小结 本章学习了数据类型 常量 变量 运算符 表达式 常用的内部函数, 这些都是 VB 程序设计语言的编程基础 1. 数据类型在编写程序时, 常常需要用到不同的数据, 不同类型的数据在计算机中的存放形式不同, 使用的内存空间不同, 参与的运算也不同 例如, 要计算 S=1+1/2+1/3+1/4+ +1/100 如果 S 定义为整型数据, 则不能得到正确的结果 2. 常量与变量 1) 常量常量是指在程序运行中其值不变的量 在 VB 中有三类常量 : 普通常量 符号常量

85 74 Visual Basic 程序设计教程 和系统常量 2) 变量 在 VB 中使用变量时, 不一定 先声明, 后使用 它有显式声明 隐式声明两种 显式声明 : 在代码窗口的最前面 ( 通用部分 ) 加入 Option Explicit 语句后, 程序中的 变量就必须 先声明, 后使用, 这就是显式声明 下 隐式声明 : 在程序中不声明而直接使用的变量, 系统默认为通用类型 3. 运算符 VB 有四种运算符 : 算术运算符 连接运算符 关系运算符和逻辑运算符 4. 表达式 由运算符 括号 内部函数及数据组成的式子称为表达式 VB 表达式的书写原则如 (1) 表达式中的所有运算符和操作数必须并排书写 (2) 数学表达式中省略乘号的地方, 在 VB 表达式中不能省 (3) 要注意各种运算符的优先级别, 为保持运算顺序, 在写 VB 表达式时需要适当 添加括号 (), 若要用到库函数, 必须按库函数要求书写 5. 常用内部函数 VB 提供了上百种内部函数 ( 也称为库函数 ), 用户需要掌握一些常用函数的功能及 使用方法 VB 函数的调用只能出现在表达式中, 目的是使用函数求得一个值 函数的使用方法如下 : 函数名 ( 参数列表 ) 函数名 有参函数无参函数 科学出版社职教技术出版中心

86 第 4 章 VB 的基本控制结构 本章要点 了解算法的基本描述方法 掌握 VB 的输入 输出函数和语句 掌握顺序结构的特点及应用 掌握选择结构的特点及应用 掌握循环结构的特点及应用 根据前面的介绍, 设计一个 VB 应用程序, 首先要对应用程序设计一个或多个窗体, 必要时在窗体上设置有关的控件, 这是可视化程序展现给用户的界面 在这个界面上, 用户通过鼠标或键盘操作界面上的对象, 产生一个事件, 要求应用程序对所产生的事件予以响应, 所谓响应就是执行一段程序, 这段程序完成了事件所要求的功能 当然, 在一个应用程序里, 会有许多事件产生, 也就是说允许多段程序完成相应功能 这些程序段应怎样编写? 使用哪些语句编写程序? 这就是本章要解决的问题 本章主要介绍 VB 程序设计中要用到的程序语句, 介绍每种语句的语法规则, 再将多个语句结合程序的功能要求按一定的逻辑规则组成程序 在 VB 程序设计中, 程序的控制结构有以下三种 (1) 包括输入 输出的顺序结构语句 (2) 选择结构语句 (3) 循环结构语句 4.1 算法与结构 算法 1. 算法的定义算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤, 或者看成按照要求设计好的有限的确切的计算序列, 并且这样的步骤和序列可以解决一类问题 只有通过算法能够表示的问题, 才能够用计算机求解 对同一个问题, 可以有不同的解题方法和步骤, 也就是说可以有不同的算法 不同的算法可能用不同的时间 空间或效率来完成同样的任务 一个算法的优劣可以用空间复杂度与时间复杂度来衡量 如果一个算法有缺陷, 或不适合于某个问题, 执行这个算法将不会解决这个问题

87 76 Visual Basic 程序设计教程 2. 算法的特征 一个正确的算法, 应具备如下的基本特征 1) 有穷性 算法的有穷性 (Finiteness) 是指算法必须能在执行有限个步骤之后终止 2) 确切性 算法的确切性 (Definiteness) 是指算法的每一步骤必须有确切的定义 3) 输入项 一个算法有 0 个或多个输入项 (Input), 以刻画运算对象的初始情况, 所谓 0 个输 入项是指算法本身定出了初始条件 4) 输出项 一个算法有一个或多个输出项 (Output), 以反映对输入数据加工后的结果 没有输 出的算法是毫无意义的 5) 可行性 可行性 (Effectiveness) 是指算法中执行的任何计算步骤都是可以被分解为基本的可 执行的操作步, 即每个计算步都可以在有限时间内完成 ( 也称为有效性 ) 6) 高效性 高效性 (High Efficiency) 是指执行速度快, 占用资源少 3. 算法的基本要素 1) 数据对象的运算和操作 计算机可以执行的基本操作是以指令的形式描述的 一个计算机系统能执行的所有 指令的集合, 称为该计算机系统的指令系统 一个计算机的基本运算和操作有如下四类 有关 算术运算 : 加 减 乘 除等运算 逻辑运算 : 或 与 非等运算 关系运算 : 大于 小于 等于 不等于等运算 数据传输 : 输入 输出 赋值等运算 2) 算法的控制结构 一个算法的功能结构不仅取决于所选用的操作, 而且还与各操作之间的执行顺序 4. 算法的描述 描述算法的方法有多种, 常用的有自然语言 结构化流程图 伪代码和 PAD 图等, 其中最普遍使用的是流程图 1) 用传统流程图表示 科学出版社职教技术出版中心 传统流程图是用一些图形框来表示各种操作 其优点是形象直观, 简单易懂, 便于 修改和交流 图 4.1 列出了美国国家标准化协会 (ANSI) 规定的一些常用的流程图符号

88 第 4 章 VB 的基本控制结构 77 图 4.1 常用的流程图符号 例 4.1 用传统流程图描述下列函数 : 1 x 0 y= ( ) 1 ( x < 0) 其流程图描述如图 4.2 所示 图 4.2 例 4.1 的流程图 2) 用计算机语言表示算法计算机是无法直接识别自然语言 流程图和伪代码形式的算法, 只有用计算机语言编写的程序才能被计算机识别和处理, 因此用自然语言 流程图和伪代码形式描述的算法, 最终还要将它转换成计算机语言描述的程序 例 4.2 用 VB 语言描述例 4.1 Private Sub Form_Click() Dim x%,y% x = InputBox(" 请输入 X 的值 ", " 输入数据 ") If x >= 0 Then y = 1 Else y = -1 Print "x="; x; "y="; y 5. 算法的评价同一问题可用不同算法解决, 而一个算法的质量优劣将影响到程序的效率 算法分析的目的在于选择合适的算法和改进算法 一个算法的评价主要从时间复杂度和空间复杂度来考虑 1) 时间复杂度算法的时间复杂度是指执行算法所需要的时间 一般来说, 计算机算法是问题规模 n

89 78 Visual Basic 程序设计教程 的函数 f(n), 算法的时间复杂度也因此记做 : T(n)=Ο(f(n)) 算法执行时间的增长率与 f(n) 的增长率正相关, 称为渐进时间复杂度 (Asymptotic Time Complexity, 简称时间复杂度 ) 2) 空间复杂度 算法的空间复杂度是指算法需要消耗的内存空间 其计算和表示方法与时间复杂度 类似, 一般都用复杂度的渐近性来表示 同时间复杂度相比, 空间复杂度的分析要简单得多 3) 正确性算法的正确性是评价一个算法优劣的最重要的标准 4) 可读性算法的可读性是指一个算法可供人们阅读的容易程度 5) 健壮性健壮性是指一个算法对不合理数据输入的反应能力和处理能力, 也称为容错性 程序控制结构 VB 采用事件驱动调用过程的程序设计方法, 但是对于具体过程的本身, 采用的仍然是结构化程序设计的方法 结构化程序设计包含三种基本结构 : 顺序结构 选择结构和循环结构 在顺序结构中, 程序由上到下依次执行每一条语句 在选择结构中, 程序判断某个条件是否成立, 以决定执行哪部分代码 在循环结构中, 程序判断某个条件是否成立, 以决定是否重复执行某部分代码 4.2 顺序结构 顺序结构是结构化程序设计中最简单的一种控制结构, 在顺序结构的程序中, 程序总是按从上到下的线性顺序执行的 赋值语句 注释语句 结束语句 输入 / 输出语句等构成了最基本的顺序结构程序 赋值语句 注释语句 暂停语句 结束语句 1. 赋值语句 科学出版社职教技术出版中心 赋值语句是程序设计中使用的最基本语句, 用赋值语句可以将指定的值赋给某个变量或某个属性值赋给带有属性的对象, 它是为变量和控件属性赋值的最基本的方法 格式 1: 变量名 = 表达式格式 2: 对象名. 属性 = 表达式

90 第 4 章 VB 的基本控制结构 79 说明 : 表达式可以是任何类型的值, 一般应与左边变量或属性的类型保持一致 例如 : A=88 ' 将数值常量 88 赋给变量 A N=N+1 ' 将变量 N 的值加上 1 后再赋给 N, 即在原值的基础上累加 1 Command1.caption=" 运行程序 " ' 控件 command1 的标题设为 " 运行程序 " Command1.top=200 ' 控件 command1 与窗体上边界的距离为 200 Text1.Text=" 计算机 " ' 将控件 Text1 的文本值设为 " 计算机 " Text2.Text=" 文化基础 " ' 将控件 Text2 的文本值设为 " 文化基础 " Text3.Text =Text1.Text & Text2.Text 1) 赋值号与等号的区别在 VB 语言中, = 称为赋值号, 其形式与数学中的等号 (=) 完全一致, 但意义不同 数学中其表示左右两边绝对相等 ; 而在 VB 语言中其表示先计算右边表达式的值, 再将此值赋给左边的变量 例如, 在 N=N+1 语句中, 执行时先计算 = 右边的表达式的值, 即将变量 N 的值在当前值的基础上加上 1, 然后将结果赋给变量 N, 此时变量 N 获得了新值, 如果 N 的原值为 88, 则现在新值为 89 在 VB 语言中, = 是一个具有二义性的符号, 既可作为赋值号, 又可以作为关系运算符中的符号, 它的实际意义需根据其前后文的形式来判断 例如 : if x=y then z=x else z=y end if ' 此时 "=" 是关系运算符, 它用于判断其 x 和 y 值是否相等 ' 此时 "=" 为赋值号 ' 此时 "=" 为赋值号 2) 类型问题 赋值语句中的赋值号两边的两个量都有特定的数据类型, 因此存在以下两种可能 (1) 当左右两边的数据类型一致时, 仍保持它们的原类型 (2) 当左右两边的数据类型不一致时, 存在以下一些情况 1 当表达式为数值型而精度不同时, 强制转化为左边的精度 2 当表达式是数字字符串时, 左边变量为数值类型时, 则其结果自动转换为数值类 型再赋值 3 当表达式是非数字字符串, 左边变量为数值类型时, 则出错 4 当表达式是逻辑型, 左边变量为数值类型时, 则表达式结果为 :True 转化为 1, False 转换为 0 5 当表达式是数值类型, 左边变量为逻辑型时, 则表达式结果为 : 非 0 转化为 True, 0 转换为 False 6 任何非字符类型赋值给字符类型, 就会自动转换为字符类型 例如 : s %=7.8 ' 转换时自动四舍五入,s 的值为 8 s %="78" 's 的值为 78 s %="56"+"78" 's 的值为 5678 s $=56+78 's 的值为 134

91 80 Visual Basic 程序设计教程 s %="7abc8" ' 出现错误 s %=true 's 的值为 -1 s %=false 's 的值为 0 s %="" ' 出现错误 3) 赋值号 赋值号左边只能是变量, 不能是常量 常数符号 表达式 以下语句均为错误语句 : m+n=88 88=m+n ' 赋值号左边不能是表达式 ' 赋值号左边不能是常量 4) 赋值语句 一个赋值语句只能为一个变量赋值, 不能为多个变量赋值, 如 : x=y=9 系统将最左边的 "=" 看成赋值号, 而将后边的 "=" 作为关系运算处理, 即 y=9 是个表达式,x 的值为逻辑值 2. 注释语句 注释语句用来对程序或程序中某些语句作注释, 以便于程序的阅读和理解 格式 1: ' 注释内容格式 2: Rem 注释内容说明 : (1) 注释语句属于非执行语句, 它对程序的执行结果没有任何影响, 仅在列程序清单时, 注释内容被完整地列出 (2)Rem 是 Remark 的缩写 (3) 任何字符 ( 包括汉字 ) 均可放在注释行中作为注释内容 (4) 注释语句作为一个独立行, 可放在过程 模块的开头作为标题, 也可以放在执行语句的后面 例如 : x=x+1 ' 将变量 x 的值加上 1 后再赋给 x, 即在原值的基础上累加 1 其中 x=x+1 为语句本身, 而 ' 后的内容则为注释内容 3. 暂停语句 科学出版社职教技术出版中心 暂停语句用于暂时停止程序的运行 格式 : Stop 说明 : (1) 在程序运行期间, 有时需要中途中止一下, 以便观察前面运行的结果或修改程

92 第 4 章 VB 的基本控制结构 81 序, 然后让程序接着运行下去, 这时就要用到暂停语句 Stop (2)Stop 可以放置在过程中的任何地方, 相当于在程序代码中设置断点, 类似于执 行 运行 菜单中的 中断 命令 当执行 Stop 语句时, 系统将自动打开 立即窗口, 方便程序员调试跟踪程序 它是用户调试程序的一种方法, 在程序调试后, 生成可执行文件 (.exe 文件 ) 之前, 应删去代码中的所有 Stop 语句 4. 结束语句 程序运行时, 遇到结束语句就终止程序的运行 格式 : End 说明 : 当在程序中执行 End 语句时, 将终止当前程序, 重置所有变量, 并关闭所有数据文件 为了保持程序的完整性, 特别是要求生成.exe 文件的程序, 应该含有 End 语句, 并且通过 End 语句正常结束程序的执行 End 语句除用来结束程序外, 在不同环境下还有其他一些用途, 包括如下内容 (1): 结束一个 Sub 过程 (2)End Function: 结束一个 Function 过程 (3)End If: 结束一个 If 语句块 (4)End Type: 结束记录类型的定义 (5)End Select: 结束情况语句 输入 输出函数和语句 下面介绍 VB 提供的输入和输出数据的两个函数, 即 InputBox( ) 函数和 MsgBox( ) 函数 1. InputBox() 函数 InputBox() 函数产生一个对话框, 这个对话框作为输入数据的界面, 等待用户输入数据或按下按钮, 当用户单击 确定 按钮或按 Enter 键, 则返回用户在文本框中输入的内容 函数返回值是 String 类型 格式 : InputBox[$](prompt[, title][, default][, xpos][, ypos], [helpfile], [context]) 说明 : (1)prompt: 提示信息, 是作为对话框提示消息出现的字符串表达式, 允许使用汉字, 最大长度为 1024 个字符, 该项不能省略 在对话框内显示 prompt 时, 可以自动换行, 如果用户需要换行, 则插入回车 Chr$(13) 换行符 Chr$(10) 或者 VB 常数 vbcrlf 来分隔提示信息 (2)title: 是字符串表达式, 它作为对话框的标题, 显示在对话框顶部的标题栏上, 如果省略则标题栏上显示应用程序名 (3)default: 是一个字符串表达式, 如果输入对话框无输入数据时, 则用此默认数据

93 82 Visual Basic 程序设计教程 作为输入的内容 ; 如果用户输入数据, 则用户输入的数据立即取代默认值 ; 若省略该参数, 则默认值为空白 (4)xpos 和 ypos:x 坐标和 y 坐标是两个整型表达式, 作为对话框左上角在屏幕上的点坐标, 其单位为 twip, 若省略, 则对话框显示在屏幕中心线向下约 1/3 处 (5)helpfile: 为字符串变量或字符串表达式, 用于表示所要使用的帮助文件的名字 (6)context: 为一个数值型变量或表达式, 用于表示帮助主题的帮助号 使用时与 helpfile 一起使用, 可以同时存在, 也可以全部省略 注意事项 : (1) 每执行一次 InputBox() 函数, 只能输入一个值, 如果需要输入多个数据, 则必须多次调用 InputBox() 函数 (2) 输入数据后, 应单击 确认 按钮, 或按 Enter 键, 输入的数据才能返回给函数值, 否则输入的数据不能保留 ; 如果单击 取消 按钮, 则当前输入无效, 返回一个空字符串作为函数值 (3) 如果后面的参数要使用, 前面的参数不使用, 分隔符, 不能省略 例 4.3 利用 InputBox() 函数分别输入学生的姓名 性别 年龄 成绩信息, 并将信息显示在窗体上 程序代码如下 : Private Sub Form_Click() Dim s As String, x As Single,y As Single s = InputBox(" 请输入学生姓名 :", " 学生信息 ") x = InputBox(" 请输入数学成绩 :", " 学生信息 ") y = InputBox(" 请输入语文成绩 :", " 学生信息 ") Print " 姓名 ", " 数学成绩 ", " 语文成绩 ", " 总成绩 " Print s,x, y, x + y 单击窗体后, 依次显示三个输入框, 第一个输入框如图 4.3 所示 图 4.3 例 4.3 输入框 科学出版社职教技术出版中心 在依次出现的三个输入框中依次分别输入 肖瑶 98 92, 单击 确定 按钮, 运行结果如图 4.4 所示 图 4.4 例 4.3 程序运行结果

94 第 4 章 VB 的基本控制结构 83 例 4.4 任意输入三个数, 求由这三个数组成的三角形的面积 ( 假设输入的三条 边符合三角形的边长条件 ) 程序代码如下 : Private Sub Form_click() Dim a!, b!, c!, t!, s! a = InputBox(" 请输入第一条边 ", " 请输入三角形的三条边 ") b = InputBox(" 请输入第二条边 ", " 请输入三角形的三条边 ") c = InputBox(" 请输入第三条边 ", " 请输入三角形的三条边 ") t = (a + b + c)/ 2 s = Sqr(t * (t - a)* (t - b)* (t - c)) Print " 第一条边为 ", a Print " 第二条边为 ", b Print " 第三条边为 ", c Print " 面积为 ", s 单击窗体后, 依次显示三个输入框, 第 1 个输入框如图 4.5 所示 在依次出现的三个输入框中依次输入 , 单击 确定 按钮, 运行结果如图 4.6 所示 图 4.5 例 4.4 的输入框 图 4.6 例 4.4 的程序运行结果 2. MsgBox() 函数 MsgBox() 函数可以用对话框的形式向用户输出一些必要信息, 还可以让用户在对话框内进行选择, 然后此函数返回一个整型值传输给程序, 以记录用户的操作来决定其后的程序执行 格式 : MsgBox(prompt,[buttons],[title],[helpfile],[context]) 说明 : 其中的 prompt title helpfile 和 context 参数与 InputBox() 函数中的同名参数类似, 这里不再介绍 (1)buttons: 指定显示按钮的数目及形式, 使用的图标样式, 默认按钮是什么, 以及消息框的强制返回级别等 该参数是一个数值表达式, 是四类数值相加产生的, 其默认值为 0 这四类数值或符号常量分别表示按钮的类型 显示图标的种类 活动按钮的位置 强制返回 buttons 的取值和意义如表 4.1 所示 表 4.1 buttons 的取值和意义 符号常量值描述 vbokonly 0 只显示 确定 按钮

95 84 Visual Basic 程序设计教程 符号常量 值 描 述 vbokcancel 1 显示 确定 取消 按钮 vbabortretryignore 2 显示 终止 重试 忽略 按钮 vbyesnocancel 3 显示 是 否 取消 按钮 vbyesno 4 显示 是 否 按钮 vbretrycancel 5 显示 重试 取消 按钮 续表 vbcritical 16 显示图标 vbquestion 32 显示图标 vbexclamation 48 显示图标 vbinformation 64 显示图标 vbdefaultbutton1 0 第 1 个按钮是默认值 vbdefaultbutton2 256 第 2 个按钮是默认值 vbdefaultbutton3 512 第 3 个按钮是默认值 vbdefaultbutton4 768 第 4 个按钮是默认值 vbapplicationmodal 0 vbsystemmodal 应用程序强制返回, 当前应用程序被挂起, 直到用户对消息框作出响应才继续工作系统强制返回, 系统全部应用程序都被挂起, 直到用户对消息框作出响应才继续工作 表 4.1 中的数据可分为四类 1 第 1 组值 (0~5): 描述了对话框中显示的按钮的类型与数目, 按钮共有七种 : 确认 取消 终止 重试 忽略 是 否 每个数值表示一种按钮的组合方式 2 第 2 组值 (16,32,48,64): 指定对话框显示的图标样式, 共有四种 : 3 第 3 组值 (0,256,512,768): 指明默认活动按钮, 即活动按钮周边有虚线, 按 Enter 键可执行该按钮的操作 4 第 4 组值 (0,4 096): 决定消息框的强制返回值 科学出版社 buttons 参数由每组值选取一个数字相加而成 参数表达式既可以用符号常数, 也可以用数值 例如 : 17=1+16 或 vbcritical + vbokcancel, 显示 确定 取消 按钮, 图标, 设置默认活动按钮为 确定 321= 或 vbokcancel+vbinformation+vbdefaultbutton, 显示 确定 和 取消 按钮, 图标, 默认活动按钮为 取消 (2)MsgBox() 函数的参数只有 prompt 参数不可省略, 其他均可省略 如果省略 buttons, 则对话框中只显示 确定 按钮 ; 如果省略 title, 则标题框显示当前工程的名称 (3)MsgBox() 函数的返回值是一个整数, 这个整数与选择的按钮有关, 分别与七种按钮相对应,MsgBox() 函数的返回值如表 4.2 所示 职教技术出版中心

96 第 4 章 VB 的基本控制结构 85 表 4.2 MsgBox() 函数的返回值 值操作符号常量 1 选 确定 按钮 vbok 2 选 取消 按钮 vbcancel 3 选 终止 按钮 vbabort 4 选 重试 按钮 vbretry 5 选 忽略 按钮 vbignore 6 选 是 按钮 vbyes 7 选 否 按钮 vbno 例 4.5 如果用户程序出错, 则系统会出现一个提示框, 提示用户是否继续 提 示框中显示图标和 确定 取消 按钮 程序代码如下 : 或者 Private Sub Form_Click() a=msgbox(" 程序出错, 继续吗?", vbcritical+vbokcancel, _ "MsgBox 函数使用示例 ") Private Sub Form_Click() a = MsgBox(" 程序出错, 继续吗?", 17, "MsgBox 函数使用示例 ") 程序的运行结果相同, 如图 4.7 所示 例 4.6 测试 MsgBox() 函数的返回值 程序代码如下 : Private Sub Form_Click() msg1 = " 确定要删除吗?" 图 4.7 例 4.5 的程序运行结果 msg2 = " 注意 " yn = MsgBox(msg1, , msg2) ' 将消息框的返回值赋值给变量 yn Print yn 程序运行时, 单击窗体会显示消息框, 如图 4.8 所示 当用户单击 否 按钮时, 在窗体 Form1 上显示 MsgBox() 函数的返回值为 7, 如图 4.9 所示 图 4.8 例 4.6 程序运行结果 (1) 图 4.9 例 4.6 程序运行结果 (2) 3. MsgBox 语句 MsgBox 语句的功能和 MsgBox() 函数的功能一样, 参数的形式与 MsgBox() 函数一样,

97 86 Visual Basic 程序设计教程 但它没有返回值 由于一些消息框不需要返回信息, 所以不使用函数方式, 而使用语句方式 这实际上是给程序员带来编程序的方便 格式 : MsgBox prompt, [buttons], [title], [helpfile], [context] 说明 : 该语句中各参数的含义及作用与 MsgBox() 函数相同 由于 MsgBox 语句没有返回值, 因此常被用于简单的信息显示 例 4.7 用 MsgBox 语句显示警示信息 程序代码如下 : Private Sub Form_Click() msg1 = " 您已超出操作权限 " msg2 = " 注意 " MsgBox msg1, , msg2 图 4.10 例 4.7 程序的运行结果程序运行结果如图 4.10 所示, 但单击 确定 按钮后, 系统没有记录 4.3 选择结构 顺序结构是程序设计的最基本的结构, 但是在程序设计时往往需要进行一些判断, 程序运行时根据判断结果选择执行哪些语句 例如, 输入一个非零的数, 判断其是正数还是负数, 其结果只能是二者中的一个, 这样的问题就不能用顺序结构来完成了, 而要使用选择控制结构 选择控制结构又称为分支结构, 这种结构能够根据条件执行不同的操作 VB 支持的选择控制结构包括 If 语句和 Select Case 语句 If 语句 1. If Then 语句 格式 : If< 条件 >Then < 语句块 > End If 说明 : 科学出版社职教技术出版中心 (1) 条件 一般为关系表达式或逻辑表达式, 其值为 True 或 False 语句块 可以为一条或多条语句,If 语句以 End If 结束 (2) 语句执行过程 : 首先判断条件表达式的值, 若为 True, 则执行 Then 后面的语句块 ; 否则, 直接跳出 If 语句, 执行 End If 之后的语句 If 语句流程图见图 4.11 图 4.11 If 语句单分支流程图

98 第 4 章 VB 的基本控制结构 87 例 4.8 输入一个数, 如果这个数大于 0, 则输出 这个数是正数 程序代码如下 : Private Sub Form_Click() Dim a! a = InputBox("please input a number :") If a > 0 Then Print a;" 是个正数 " End If (3) 条件表达式也可以是算术表达式, 表达式的结果 : 为 0 则为 False, 非 0 为 True 例如 : Dim a% a=3 If a then Print a End If 由于 a 被赋值为 3, If 语句判断条件时, 会认为条件为 True, 所以执行分支内语句, 输出 a 的值 3 (4)If 语句可以精简为单行 If 语句, 即 If < 条件 > Then < 语句 > 单行 If 语句必须在一行内完成,Then 后面即使是多条语句也要写在一行, 用冒号分隔, 单行 If 语句不用 End If 结束 例 4.9 将例 4.8 用单行 If 语句改写 程序代码如下 : Private Sub Form_Click() Dim a! a = InputBox("please input a number :") If a > 0 Then Print a;" 是个正数 " 一般使用单行 If 语句作短小简单的判断, 语句块形式具有更强的结构性与适应性, 并且通常也比较容易阅读 维护及调试 2. If Then Else 语句 格式 : If< 条件 >Then < 语句块 1> Else < 语句块 2> End If

99 88 Visual Basic 程序设计教程 说明 : (1) 语句执行过程 : 首先测试条件表达式的值, 如果值为真, 执行 Then 后面的语句块 1, 执行完毕跳 出 If 语句, 继续执行 End If 下面的语句 ; 如果值为假, 则执行 Else 后面的语句块 2, 执行完毕再执行 End If 下面的语句 其流程图见图 4.12 (2)If Then Else 语句为双分支选择结构, 语句块 1 和语句块 2 必定有一个被执行 例 4.10 输入一个非零数, 判断其是正数还是负数 程序代码如下 : Private Sub Form_Click() Dim a! a = InputBox("please input a number :") If a > 0 Then Print a; " 是一个正数 " Else Print a; " 是一个负数 " End If 例 4.11 判断某年是不是闰年 闰年的条件 : 年份能被 400 整除, 或者年份能被 4 整除但不能被 100 整除 分析 : 由条件可知有两种情况是闰年, 一种情况是 year Mod 400 = 0( 被 400 整除 ), 另一种情况是 year Mod 4 = 0 And year Mod 100 < > 0( 被 4 整除但不被 100 整除 ), 只要 满足其中一个条件就是闰年, 所以这两个表达式之间应该用 Or 连接 程序代码如下 : Private Sub Form_Click() Dim year As Integer year = InputBox(" 请输入一个年份 :") If year Mod 400 = 0 Or year Mod 4 = 0 And year Mod 100 <> 0 Then Print year; " 是闰年 " Else Print year; " 不是闰年 " End If (3)If Then Else 语句也可以写为单行形式, 即 If < 条件 > Then < 语句块 1> Else < 语句块 2> 例 4.12 将例 4.10 用单行语句改写 程序代码如下 : 图 4.12 If 语句双分支流程图 科学出版社职教技术出版中心 Private Sub Form_Click() Dim num! num = InputBox("please input a number :") If num > 0 Then Print num; " 是一个正数 " Else Print num; " 是一个负数 "

100 第 4 章 VB 的基本控制结构 If Then ElseIf 语句 格式 : If< 条件 1>Then < 语句块 1> ElseIf< 条件 2>Then < 语句块 2> [Else 语句块 n+1] End If 说明 :If Then ElseIf 语句用于实现多分支结构 语句执行过程 : 依次判断条件 1 条件 2, 一旦遇到表达式的值为真, 则执行该条件下的语句块 如果所有的表达式都不为真, 则执行最后的 Else 下面的语句块 n+1; 如果没有 Else 语句, 则什么也不执行, 跳出 If 语句, 执行 End If 后面的语句 流程图见图 4.13 If Then ElseIf 语句可以用于条件比较复杂的多分支情况 图 4.13 If 语句多分支结构流程图 例 4.13 已知分段函数 2 x + 1 (x > 0) y= 0 (x = 0) 2x 1 (x < 0) 编写程序, 输入自变量 x 的值, 计算并输出函数 y 的值 步骤 : (1) 新建一个 标准 EXE 工程 (2) 在 From1 窗体上依次添加两个标签控件 两个文本框控件和两个命令按钮控件 (3) 在 属性 窗口中, 设置对象属性 (4) 程序代码如下 :

101 90 Visual Basic 程序设计教程 Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x >0 Then y = x * x + 1 ElseIf x=0 Then y = 0 Else y=2*x-1 End If Text2.Text = y Private Sub Command2_Click() End 程序运行后, 在文本框 1 中输入自变量 x 的值为 5, 单击 计算 按钮, 程序运行结果如图 4.14 所示 图 4.14 例 4.13 的程序运行结果 利用多分支的 If 语句可以实现筛选, 如判断一个成绩属于哪一个等级 例 4.14 输入一个分数, 输出对应的学分值 90~100 分以上得 4 学分,80~89 分得 3 学分,70~79 分得 2 学分,60~69 分得 1 学分,60 分以下不得学分 程序代码如下 : Private Sub Form_Click() Dim score!,grade! score = InputBox(" 请输入分数 :") If score >= 90 Then grade = 4 ElseIf score >= 80 Then grade = 3 ElseIf score >= 70 Then grade = 2 ElseIf score >= 60 Then grade = 1 ElseIf score < 60 Then grade = 0 End If Print " 应得学分为 :";grade 科学出版社职教技术出版中心

102 第 4 章 VB 的基本控制结构 91 当输入一个分数时, 程序从第一个条件开始判断, 如果条件为真, 执行 grade = 4, 否则向下继续判断其他条件 总之, 只要遇到一个满足条件的分支, 便执行该分支下的语句 本题没有 Else 语句, 若所有条件均为假, 则一个分支也不执行 If 语句执行过程中, 一旦有一个分支被执行, 便退出 If 语句, 继续执行 End If 下面的语句, 也就是说如果有多个条件都为真, 只能执行第一个条件为真的分支 因此, 利用 If 多分支语句筛选数据时, 如果条件设计不当, 就不能正确地实现筛选 4. If 语句的嵌套 如果一个 If 语句块中包含另一个 If 语句, 则称为 If 语句的嵌套 格式 : If< 条件 1>Then < 语句块 1> Else If< 条件 2> Then < 语句块 2> Else < 语句块 3> End If End If 说明 : 嵌套必须完全 包住, 不能互相交叉, 即把一个 If Then Else 块放在另一个 If Then Else 块中 例 4.15 将例 4.13 分段函数用 If 语句的嵌套改写 程序代码如下 : Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x >0 Then y = x * x + 1 Else If x=0 Then y = 0 Else y=2*x-1 End If End If Text2.Text = y 例 4.16 将任意输入的三个数, 按照从大到小的顺序重新排列 程序代码如下 : Private Sub Form_Click()

103 92 Visual Basic 程序设计教程 Dim a!, b!, c! a = InputBox(" 请输入 a:") b = InputBox(" 请输入 b:") c = InputBox(" 请输入 c:") Print " 三个数原来的顺序为 " Print a, b, c Print " 三个数从大到小的顺序为 " If a < b Then t = a a = b b = t End If If c > a Then Print c, a, b Else If c < b Then Print a, b, c Else Print a, c, b End If End If 图 4.15 例 4.16 的程序运行结果 程序运行后, 依次在三个输入框中输入数据 , 单击 确定 按钮, 程序的运行结果如图 4.15 所示 Select Case 语句 实现多分支的筛选, 使用 If 语句嵌套并不是最理想的,VB 提供了 Select Case 语句可以更方便地完成多分支程序的设计 Select Case 语句也称为 Case 语句或情况语句, 其功能是根据测试表达式的值, 在几组 Case 子句中挑选出一组符合条件的语句块执行 格式 : Select Case < 测试表达式 > Case < 值 1> < 语句块 1> Case < 值 2> < 语句块 2> [Case Else < 语句块 n+1>] End Select 说明 : 先计算测试表达式的值, 依次与 Case 子句中的值相比较, 如果遇到相匹配的 科学出版社职教技术出版中心 值, 则执行该 Case 子句中的语句块, 然后跳出 Select Case 语句, 继续执行 End Select 下面的语句 (1) 测试表达式可以是任何数值表达式或字符串表达式, 也可以是日期或逻辑表达式 (2) 值 1 值 2 是测试表达式可能取的值, 与测试表达式的类型必须相同 每个 Case

104 第 4 章 VB 的基本控制结构 93 分支可以列出多个值, 可以是以下形式之一 1 多个具体值, 用逗号隔开, 例如 : Case 1,2,3 2 使用关键字 To 表示值的范围, 例如 : Case 1 to 10 3 使用 Is 关系表达式, 例如 : Case Is>=10 ' 表示测试表达式的值大于或等于 10 Case Is <>"" ' 表示测试表达式的值不为空字符串 4 也可以使用以上几种形式的组合, 例如 : Case 1,3,Is>10 ' 表示测试表达式的值为 1 3 或大于 10 例 4.17 输入 a b 的值和运算符号, 根据输入的运算符号决定运算的方式 程序代码如下 : Private Sub Form_Click() Dim a!, b!, s! Dim op$ a = InputBox(" 请输入 a:") b = InputBox(" 请输入 b:") op = InputBox(" 请输入运算符号 :") Select Case op Case "+" s = a + b Case "-" s = a - b Case "*" s = a * b Case "/" s = a / b End Select Print "a";op;"b=";s 程序运行后, 在依次出现的三个输入框中分别输入 5 7 *, 单击 确定 按钮后, 程序运行结果如图 4.16 所示 图 4.16 例 4.17 的程序运行结果 (3)Select Case 语句功能与 If 多分支语句功能类似, 但是当程序中依赖某个单独的关键变量或表达式作为判断条件时,Select Case 语句效率更高, 并且使用 Select Case 结构可以提高程序的可读性 (4) 如果测试表达式的值能与多个 Case 子句表达式的值相匹配, 只执行第一个匹配

105 94 Visual Basic 程序设计教程 的 Case 子句下面的语句块 例 4.18 用 Case 语句改写例 4.14, 将输入成绩转换为相应学分 程序代码如下 : Private Sub Form_Click() Dim score!, grade! score = InputBox(" 输入成绩 ") Select Case score Case Is >= 90 grade = 4 Case Is >= 80 grade = 3 Case Is >= 70 grade = 2 Case Is >= 60 grade = 1 Case Is < 60 grade = 0 End Select Print " 应得学分为 :"; grade 注意 : 使用 Select Case 语句也要确保值列表顺序的合理性, 才能够正确筛选数据 如果将例 4.18 中的分数值列表按相反顺序编写, 就不能合理地筛选数据了 (5)Case Else 子句是可选的, 表示没有匹配的值时则执行该子句中的语句块 n+1 通常加上 Case Else 语句来处理不可预见的测试表达式的值 ; 如果测试表达式没有匹配值, 而且也没有 Case Else 语句, 则程序会跳到 End Select 之后的语句继续执行 例 4.19 判断大小写字母问题 步骤 : (1) 新建一个 标准 EXE 工程 (2) 在 From1 窗体上依次添加两个标签控件 两个文本框控件和两个命令按钮控件 (3) 在 属性 窗口中, 设置对象属性 (4) 程序代码如下 : Private Sub Command1_Click() Dim s$ s = Text1.Text Select Case s Case "a" To "z" Text2.Text = " 它是小写字母 " Case "A" To "Z" Text2.Text = " 它是大写字母 " Case "0" To "9" Text2.Text = " 它是数字字符 " Case Else Text2.Text = " 它是其他字符 " End Select 科学出版社职教技术出版中心

106 第 4 章 VB 的基本控制结构 95 Private Sub Command2_Click() End 程序运行结果如图 4.17 所示 图 4.17 例 4.19 的程序运行结果该程序以字符串型变量作为测试表达式, 判断其属于哪种情况, 如果 分支都不符合, 则执行 Case Else 分支的语句 另外, 判断字母是大写还是小写, 可以直接利用字符串的比较判断 若满足大于或等于 A 且小于或等于 Z, 则为大写字母 ; 若满足大于或等于 a 且小于或等于 z, 则为小写字母 也可以通过其 ASCII 码的范围确定, 如果 ASCII 码在 65~90 之间为大写字母, 在 97~122 之间为小写字母, 求 ASCII 码的函数为 Asc() 条件函数 1. IIF() 函数格式 : IIf( 条件, 表达式 1, 表达式 2) 功能 : 当条件表达式的值为真时, 函数返回值为表达式 1, 否则返回表达式 2 说明 : (1) 条件 是逻辑表达式或关系表达式, 该函数在运算时, 首先计算 条件 的值, 如果 条件 的值为 True, 则该函数的返回值就是 表达式 1 的值 ; 否则, 函数的返回值是 表达式 2 的值 例如,Print IIf(3>5,1,-1) 的结果为 -1 Print IIf(3<5,1,-1) 的结果为 1 (2) 函数中的三个参数都不能省略 (3) 可以将 IIf 函数看做是一种简单的 If Then Else 结构 例如 : MaxValue=Iif(x>y,x,y) 可以改写为单行 If 语句 : If x>y Then MaxValue=x Else MaxValue=y 二者的功能是一致的

107 96 Visual Basic 程序设计教程 2. Choose 函数 格式 : Choose( 整形表达式, 选项列表 ) 功能 : 根据整形表达式的值, 决定返回选项列表中的某个值 当变量的值为 1 时, 函数值为第 1 项的值 ; 当变量的值为 2 时, 函数值为第 2 项的值 ; 当变量的值为 n 时, 函数值为第 n 项的值 说明 : (1) 表达式的类型为数值型 (2) 当变量的值是 1~n 的非整数时, 系统自动取整 (3) 若变量的值不在 1~n 之间, 则 Choose 函数的值为 Null (4)Choose() 函数可代替 Select Case 语句, 适用于简单的多重判断场合 例如 : n = 2 st = Choose(n, "red", "green", "blue") 可等价于 : st="green" 4.4 循环结构 循环是指某段程序需要重复执行若干次, 才能完成的特定任务 循环结构是程序设计中一种重要的结构, 在循环中被反复执行的部分称为循环体, 使用循环控制结构可以减少程序中大量重复的语句, 从而编写出更简洁的程序 VB 提供了三种不同风格的循环语句 For 循环 (For Next 语句 ) Do 循环 (Do Loop 语句 ) 当循环 (While Wend 语句 ) 其中,For 循环是按给定的次数执行循环体, 而 Do 循环和当循环是在给定的条件满足时执行循环体 For 循环 For Next 语句构成的循环称为 For 循环, 也称计数循环 科学出版社职教技术出版中心 格式 : For < 循环变量 > = < 初值 > To < 终值 > [Step 步长 ] [ 循环体 ] [Exit For] Next [ 循环变量 ] 说明 :For 循环按确定的次数执行循环体, 该次数是由循环变量的初值 终值和步长确定的 首先循环变量取初值, 接着将循环变量与终值进行比较, 如果不满足, 则继续

108 第 4 章 VB 的基本控制结构 97 执行循环体, 并将循环变量按步长递增或递减, 继续与终值进行比较 ; 如果满足, 则结束循环 其流程图见图 4.18 说明 : (1) 循环变量 是一个数值变量 (2) 初值 终值和步长 均是数值表达式, 其值若是实数, 则自动取整 当初值 终值时, 步长为正数 ; 当初值 > 终值时, 步长为负数 ; 步长为 1 时, 可省略不写 ; 步长不应为 0, 否则造成死循环 循环次数 =Int(( 终值 初值 )/ 步长 )+1 (3) 循环体 是需重复执行的语句, 可以是一条或多条语句的序列 (4)Exit For 可选项, 用于某些特殊情况下退图 4.18 For 循环语句流程图出循环 (5)Next 循环终端语句, 其后面的 循环变量 必须与 For 语句中的 循环变量 相同, 表明它们是一对循环的开始和结束语句 (6) 循环变量在循环体内可以引用, 但一般情况下不应改变其值, 否则将导致循环无法正常执行 例如 : 1 For i=1 to 10 Step 1 s=s+i Next i 循环次数为 10 次 2 For i=1 to 10 Step 1 i=i+1 Next i 由于在循环体内改变了循环变量的值, 导致循环无法按既定的次数进行, 循环将达不到 10 次 (7)VB 遵循 先检查, 后执行 的原则, 即先检查循环变量是否大于终值, 然后决定是否执行循环体 当步长为正, 初值大于终值时, 或步长为负, 初值小于终值时, 循环体将不执行 例如 : For i=9 to 0 Print i Next i 该循环一次不执行 例 4.20 求级数和 s= i n i= m 步骤 : (1) 新建一个 标准 EXE 工程

109 98 Visual Basic 程序设计教程 (2) 在 From1 窗体上依次添加三个标签控件 三个文本框控件和两个命令按钮控件 (3) 在 属性 窗口中, 设置对象属性 (4) 程序代码如下 Private Sub Command1_Click() Dim m!, n!, s!, i% m = Val(Text1.Text) n = Val(Text2.Text) s = 0 For i = m To n Step 1 s = s + I Next i Text3.Text = s ' 取下界 ' 取上界 ' 设循环下界 上界和步长 ' 不断累加 Private Sub Command2_Click() End 运行程序 用户在前两个文本框中输入下界 5 和上界 15, 单击 计算 按钮, 程序运行结果如图 4.19 所示 例 4.21 输入任意 10 个数, 统计其中正数和负数的个数 程序代码如下 : 图 4.19 例 4.20 的程序运行结果 Private Sub Form_Click() Dim num As Integer, i As Integer Dim k1 As Integer, k2 As Integer N1 = 0 N2 = 0 For i = 1 To 10 X = InputBox(" 请输入一个非零的数 :") Print x If X> 0 Then N1 = N1 + 1 ElseIf X < 0 Then N2 =N2 + 1 End If Next i Print " 正数的个数为 :";N1 Print " 负数的个数为 :"; N2 科学出版社职教技术出版中心 程序中利用 N1 N2 分别作为统计正数 负数个数的变量 程序运行时, 输入一个数, 判断其正负性 如果大于 0, 则变量 N1 加 1; 如果小于 0, 则变量 N2 加 1 程序中 i 仅作为控制循环次数的变量, 在循环体中并没有参与运算, 而例 4.21 中 i 不仅用于控制循环次数, 同时也参与运算 本例程序运行结果如图 4.20 所示 例 4.22 将文本框 1 中的字符串逆序在文本框 2 中输出 步骤 :

110 第 4 章 VB 的基本控制结构 99 (1) 新建一个 标准 EXE 工程 (2) 在 From1 窗体上依次添加三个标签控件 三个文本框控件和两个命令按钮控件 (3) 在 属性 窗口中, 设置对象属性 (4) 程序代码如下 : Private Sub Command1_Click() x = Text1 k = Len(x) Text2 = "" For i = k To 1 Step -1 j = Mid(x, i, 1) Text2 = Text2 + j Next i Private Sub Command2_Click() End 程序运行后, 在文本框 1 中输入字符串 sdwer1234kp, 单击 运行 按钮, 程序运行结果如图 4.21 所示 图 4.20 例 4.21 的程序运行结果 图 4.21 例 4.22 的程序运行结果 例 4.23 求 水仙花数 ( 注 : 水仙花数 是一个 3 位数, 其每一位数的立方和等于该数本身, 如 153= ) 分析 : 三位数 n 中的每一位上的数可以表示为 : 百位 i=int(n/100) 十位 j=int(n/10)-i*10 个位 k=n Mod 10 程序代码如下 : Private Sub Form_Click() Dim i As Integer, j As Integer, k As Integer, n As Integer Print " 水仙花数为 :" print For n = 100 To 999 i = Int(n / 100) j = Int(n / 10)- 10 * i k = n Mod 10 If n = i ^ 3 + j ^ 3 + k ^ 3 Then Print n;

VB程序设计教程

VB程序设计教程 高 等 学 校 教 材 Visual Basic 程 序 设 计 教 程 魏 东 平 郑 立 垠 梁 玉 环 石 油 大 学 出 版 社 内 容 提 要 本 书 是 按 高 等 学 校 计 算 机 程 序 设 计 课 程 教 学 大 纲 编 写 的 大 学 教 材, 主 要 包 括 VB 基 础 知 识 常 用 程 序 结 构 和 算 法 Windows 用 户 界 面 设 计 基 础 文 件 处

More information

FJXBQ

FJXBQ 高等医学院校选用教材 ( 供成人教育中医药专业 中西医结合专业使用 ) 方剂学 闫润红 主编 2 0 0 1 内容简介本书是供成人教育中医药专业 中西医结合专业使用的教材 全书分总论和各论两部分, 总论部分对中医方剂的基本理论, 如治法 君臣佐使 剂型 剂量等及其现代研究进展进行了介绍 各论部分对常用方剂的主治病证 配伍意义 临床应用 加减变化规律及现代研究概况等内容, 按分类进行了系统阐述 在保证方剂学学科知识结构完整性的前提下,

More information

手册 doc

手册 doc 1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106

More information

Microsoft Word Visual_Basic程序设计上机实践教程正文.doc

Microsoft Word Visual_Basic程序设计上机实践教程正文.doc 实验 3 顺序和分支结构程序设计 实验目的 1. 掌握顺序结构的程序设计思想 2. 掌握命令按钮 (CommandButton) 标签 (Label) 文本框 (TextBox) 编辑框 (EditBox) 等常用控件的使用方法 3. 了解并掌握对话框函数 MessageBox() 的含义与用法 4. 了解和熟悉线条控件 形状控件的画法以及主要属性的用法 实验内容 1. 顺序结构 实训 3-1 编写一应用程序,

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 按钮对象 (button) 当 JavaScript 读到 标记中的 type 属性值为 button 时, 自动建立一个按钮对象, 并将该对象放到表单对象的 elements 数组当中 按钮对象包括 : 普通按钮 (button) 提交按钮 (submit) 重置按钮 (reset) 1. 使用按钮对象的格式 document.forms[ 索引值 ].elements[ 索引值

More information

可视化编程技术

可视化编程技术 第一章 Visual Basic 6.0 基础知识 本章目的 : 通过本章学习了解有关可视化程序设计, 面向对象程序设计的基本概念和 VB 的基本知识 本章重点 : 可视化程序设计, 面向对象程序设计的基本概念 VB 的集成化开发环境 1 什么是可视化程序设计 所谓 可视化程序设计, 它指的是一种应用可视化开发工具, 开发图形用户界面 (GUI) 应用程序的方法 应用这种方法, 软件开发人员不须编写大量代码,

More information

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464>

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464> 第 1 章 进入 Photoshop 的全新世界 本章导读 Photoshop 1 1.1 Photoshop CS6 Photoshop Photoshop 1.1.1 Photoshop POP 1-1 图 1-1 平面广告效果 1.1.2 Photoshop 1-2 Photoshop CS6 Photoshop CS6 Photoshop CS6 Extended 3D 3 Photoshop

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 第 3 章窗体 本章重点 : 窗体的结构 窗体的属性 事件 方法 多窗体 MDI 窗体 窗体 (Form) 是一个存放控件的窗口容器, 是一个可以包含其他对象的对象 在程序运行时, 窗体成为用户与应用程序进行交互操作的界面 在 Visual Basic 中, 窗体使用灵活, 既可以同时显示程序中的所有窗体, 也可以按程序的需要显示或隐藏某些窗体 3.1 窗体的结构 本书采用如下符号规约来描述 Visual

More information

内容简介本书是 Visual Basic 程序设计 ( 曲宏山 饶拱维主编, 科学出版社 ) 或其他同类 Visual Basic 程序设计教材配套使用的上机实验指导用书, 是编者多年教学和软件开发实践经验的总结 全书共 14 个实验, 在每个实验前都列出了相关章节的知识点, 以方便读者对所学内容加

内容简介本书是 Visual Basic 程序设计 ( 曲宏山 饶拱维主编, 科学出版社 ) 或其他同类 Visual Basic 程序设计教材配套使用的上机实验指导用书, 是编者多年教学和软件开发实践经验的总结 全书共 14 个实验, 在每个实验前都列出了相关章节的知识点, 以方便读者对所学内容加 普通高等教育 十二五 重点规划教材公共课系列普通高等教育 十二五 规划教材 Visual Basic 程序设计上机指导 曲宏山饶拱维主编 张帆杨贵茂王楠副主编 北京 内容简介本书是 Visual Basic 程序设计 ( 曲宏山 饶拱维主编, 科学出版社 ) 或其他同类 Visual Basic 程序设计教材配套使用的上机实验指导用书, 是编者多年教学和软件开发实践经验的总结 全书共 14 个实验,

More information

试卷代号 : 座位号 OJ 中央广播电视大学 学年度第一学期 " 开放专科 " 期末考试 Visual Basic 程序设计试题 题号 一 二 三 四 五 总分 分数 I I I I I I I 2011 年 1 月 得分 评卷人 I I I 题 { 每小题

试卷代号 : 座位号 OJ 中央广播电视大学 学年度第一学期  开放专科  期末考试 Visual Basic 程序设计试题 题号 一 二 三 四 五 总分 分数 I I I I I I I 2011 年 1 月 得分 评卷人 I I I 题 { 每小题 试卷代号 : 2 2 3 1 座位号 OJ 中央广播电视大学 2 0 1 0-2011 学年度第一学期 " 开放专科 " 期末考试 Visual Basic 程序设计试题 题号 一 二 三 四 五 总分 分数 I 2011 年 1 月 题 { 每小题 2 分, 共 3 0 分 } 1. 对于定时器 ( Tim 盯 控件, 设置其定时是否开启的属性是 ( ) A. Index B. Tag c. Enabled

More information

科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心

More information

PowerPoint Template

PowerPoint Template 窗体 P15 常用控件 菜单设计 多窗体界面设计 P19 P30 P32 属性 方法 事件 属性名 Name( 名称 ) Caption Height Width Left Top BackColor ForeColor Enabled Visible Font Moveable Picture 描述所创建窗体的名称窗体的标题, 即窗体标题栏上显示的内容窗体的高度窗体的宽度窗体的左边界距容器坐标系纵轴的距离窗体上边界距容器坐标系横轴的距离返回或设置窗体中文本和图形的背景色返回或设置窗体中文本和图形的前景色决定窗体是否活动决定窗体在程序运行时是否可见用于设置窗体中文本的外观,

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

普通高等教育 十二五 规划教材公共课系列 高级语言程序设计 Visual Basic 刘立群刘哲 邹丽娜主编 刘冰周颖王伟王占军副主编 郑尚志梁宝华参 编 周进钱进参编 北京 科学出版社职教技术出版中心 www.aboo 内容简介本书是为了适应 Visual Basic 程序设计课程教学需要而编写的, 知识点全面完整, 涵盖了全国计算机等级考试二级考试大纲要求 全书共分 13 章, 从认识 Visual

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

SMM667.mps

SMM667.mps 第 章 设 计 简 单 程 序 本 章 是 学 习 VB 程 序 设 计 的 入 门 篇, 其 中 涉 及 的 几 个 常 用 控 件 和 基 本 语 句 是 后 续 章 节 中 反 复 使 用 的 基 础 内 容 学 习 目 标 瞯 了 解 顺 序 程 序 结 构 瞯 熟 悉 用 户 界 面 的 设 计 和 简 单 代 码 设 计 瞯 掌 握 赋 值 语 句 和 InputBox MsgBox Print

More information

科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心

More information

科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心 科学出版社职教技术出版中心

More information

穨文件1

穨文件1 2-1 Access 2000 Visual Basic Access 2000 97 Office Visual Basic Visual Basic Visual Basic VBA Visual Basic Visual Basic 2-1-1 Visual Basic Access Visual Basic ( ) 2-1 2-1 Visual Basic 2-1 Microsoft Access

More information

内容简介本书以 Visual Basic 6.0 中文版为背景, 详细介绍了 Visual Basic 程序设计的基本知识 基本语法 编程方法和常用算法, 同时将可视化界面设计与程序设计语言有机地结合, 通过内容丰富的实例较系统地介绍了使用 Visual Basic 开发 Windows 应用程序的

内容简介本书以 Visual Basic 6.0 中文版为背景, 详细介绍了 Visual Basic 程序设计的基本知识 基本语法 编程方法和常用算法, 同时将可视化界面设计与程序设计语言有机地结合, 通过内容丰富的实例较系统地介绍了使用 Visual Basic 开发 Windows 应用程序的 普通高等教育 十二五 规划教材 Visual Basic 语言程序设计教程 周冰邓娟刘芳主编 石义良李欣 刘永真副主编 北 京 科学出版社职教技术出版中心 www.aboo 内容简介本书以 Visual Basic 6.0 中文版为背景, 详细介绍了 Visual Basic 程序设计的基本知识 基本语法 编程方法和常用算法, 同时将可视化界面设计与程序设计语言有机地结合, 通过内容丰富的实例较系统地介绍了使用

More information

内容简介本书是与 Visual Basic 程序设计教程 相配套的实践教程 本书包括了与主教材各章节内容对应的上机实践及自测习题 上机实践部分内容丰富, 步骤清晰, 注重基本知识与实际案例相结合, 可操作性强 自测习题部分知识涵盖范围广, 有助于学生对知识理解和掌握 本书可作为高等院校非计算机专业学

内容简介本书是与 Visual Basic 程序设计教程 相配套的实践教程 本书包括了与主教材各章节内容对应的上机实践及自测习题 上机实践部分内容丰富, 步骤清晰, 注重基本知识与实际案例相结合, 可操作性强 自测习题部分知识涵盖范围广, 有助于学生对知识理解和掌握 本书可作为高等院校非计算机专业学 普通高等教育 十二五 重点规划教材计算机基础教育系列 中国科学院教材建设专家委员会 十二五 规划教材 Visual Basic 程序设计实践教程 肖峰季晓玉主编 科学出版社职教技术出版中心 www.aboo 北 京 内容简介本书是与 Visual Basic 程序设计教程 相配套的实践教程 本书包括了与主教材各章节内容对应的上机实践及自测习题 上机实践部分内容丰富, 步骤清晰, 注重基本知识与实际案例相结合,

More information

《Visual Basic程序设计》实验课

《Visual Basic程序设计》实验课 Visual Basic Visual Basic dstang2000@263.net 0 Visual Basic 1 0...1 1 Visual Basic...2 2...3 3...6 4...9 5...13 6...16 7...18 8...22 9...24 10...27 11...29 12 API...31 13...34 14...35 15...38 1 1 Visual

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

Microsoft PowerPoint - OPVB1基本VB.ppt

Microsoft PowerPoint - OPVB1基本VB.ppt 大 綱 0.VB 能 做 什 麼? CH1 VB 基 本 認 識 1.VB 歷 史 與 版 本 2.VB 環 境 簡 介 3. 即 時 運 算 視 窗 1 0.VB 能 做 什 麼? Visual Basic =>VB=> 程 式 設 計 語 言 => 設 計 程 式 設 計 你 想 要 的 功 能 的 程 式 自 動 化 資 料 庫 計 算 模 擬 遊 戲 網 路 監 控 實 驗 輔 助 自 動

More information

Microsoft Word - CX1000-HMI_程序开发_PLC通讯

Microsoft Word - CX1000-HMI_程序开发_PLC通讯 用 VB.Net 开发 CX1000 的 HMI 第二部分和 TwinCAT PLC 通讯 一 TwinCAT 动态库 TwinCAT.Ads.dll The TwinCAT.Ads.dll 是一个.NET 类库, 它提供和 ADS 设备通讯的类 如果 TwinCAT PLC 运行在 IPC 上, 则需要添加的类库是路径 \TwinCAT\ADS Api\.NET\v1.1.4322 下的 TwinCAT.Ads.dll

More information

图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, ISBN Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B 中国版本图书馆 CIP 数据核字 (2005) 第 号 书

图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, ISBN Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B 中国版本图书馆 CIP 数据核字 (2005) 第 号 书 做事细节全书 赵彦锋著 企业管理出版社 图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, 2005.11 ISBN 7-80197-338-0 Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B026-49 中国版本图书馆 CIP 数据核字 (2005) 第 136676 号 书 名 : 做事细节全书 作 者 : 赵彦锋 责任编辑 : 吴太刚

More information

Microsoft Word - VB全文.doc

Microsoft Word - VB全文.doc 实验 5 顺序结构 一 实验目的 1. 熟悉常用的输入和输出的方法 2. 掌握 InputBox 函数和 MsgBox 函数的用法 3. 掌握编写顺序结构程序的一般步骤 二 实验内容 1. 设计一个计算圆面积的程序 要求 : 利用 InputBox 函数输入圆的半径, 利用 MsgBox 显示最后的计算结果 2. 设计一个简单的水果商店结算程序 要求 : 利用文本框输入香蕉 梨子 苹果三类水果的单价和重量,

More information

2

2 1 2 1-1 Visual Basic 3 1-2 3/8-3/21 3/22-4/4 4/5-4/18 4/19-5/2 5/3-5/16 5/17-5/30 5/31-6/13 6/14-6/27 6/28-7/11 7/12-7/25 7/26-8/8 8/9-8/22 8/25-9/5 9/6-9/19 9/20-10/3 10/4-10/17 10/18-10/31 11/15-11/28

More information

Photoshop CS6 艺术设计案例教程 ( 第二版 ) 1.1 Photoshop 的应用领域 Photoshop,,, Photoshop Photoshop 的用途 Photoshop CIS ( ) ( ) 案例展现 ~ 1

Photoshop CS6 艺术设计案例教程 ( 第二版 ) 1.1 Photoshop 的应用领域 Photoshop,,, Photoshop Photoshop 的用途 Photoshop CIS ( ) ( ) 案例展现 ~ 1 Chapter 01 Photoshop CS6 的基本操作 本章内容 1.1 Photoshop 的应用领域 1.6 控制面板的显示与隐藏 1.2 位图和矢量图的特性 1.7 新建 打开与保存文件 1.3 像素和分辨率的关系 1.8 图像的缩放 1.4 色彩模式 1.9 屏幕显示模式 1.5 Photoshop CS6 界面 1.10 计算机图形图像常用的色彩模式 Photoshop CS6 艺术设计案例教程

More information

VB控件教程大全

VB控件教程大全 Datagrid DataGrid1.Columns.Remove(0) ' 0 DataGrid1.Columns.Add(0).Caption= ' DataGrod1.Columns(0).DataField= Name ' Adodc1.Refresh DataGrid BackColor Font DataGrid CellPadding HTML CellSpacing HTML Width

More information

通用可视化开发语言实习指导书.doc

通用可视化开发语言实习指导书.doc 实习一 熟悉并掌握 VB 集成开发环境 一 实习目的 1 熟悉 VB 的开发环境 ; 2 掌握开发 VB 程序的一般步骤, 学会建立简单的 VB 应用程序 3 完成课后习题 二 原理与方法 VB 是面向对象的程序设计语言, 把程序和数据封装起来作为一个对象, 并为对象赋予应有的属性, 在设计对象时, 不必编写建立和描述每个对象的程序 代码, 而是用工具画在界面上 另外 VB 提供了可视化设计工具,

More information

普通高等教育 十二五 规划教材中国科学院教材建设专家委员会 十二五 规划教材 Visual Basic 程序设计实践教程 刘必雄 编著 北 京 科学出版社职教技术出版中心 www.aboo 内容简介 本书是 Visual Basic 程序设计 ( 刘必雄编著, 科学出版社出版 ) 的配套教学用书, 是作者多年教学实践经验的总结 全书分为 3 篇 : 第一篇为上机实验, 根据教学要求安排了 10 个实验,

More information

Microsoft PowerPoint - 07 派生数据类型

Microsoft PowerPoint - 07 派生数据类型 能源与动力工程学院 目录 派生类型 陈 斌 固有数据类型 数值型 (numerical) 整型 INTEGER 实型 REAL 复数型 COMPLEX 非数值型 字符型 CHARACTER 逻辑型 ( 布尔型 )LOGICAL 自定义数据类型 ( 派生类型, derived type) 派生类型是指用户利用 Fortran 系统内部类型, 如整型 实型 复数型 逻辑型 字符型等的组合自行创建出一个新的数据类型,

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

C#程序设计实验

C#程序设计实验 程序设计基础 实验指导 / 实验一 : 认识 C# 1 程序设计基础 实验指导 实验一 : 认识 C# 一 实验目的 1 掌握 Visual Studio 的基本操作方法, 学会使用该编译工具 2 掌握编辑 编译 运行控制台应用程序的基本过程 3 掌握建立 Windows 窗体应用程序的基本过程 4 通过运行 C# 程序, 初步了解 C# 程序的特点 二 实验学时 2 学时 三 实验类型 验证性实验

More information

Converting image (bmp/jpg) file into binary format

Converting image (bmp/jpg) file into binary format RAiO Image Tool 操作说明 Version 1.0 July 26, 2016 RAiO Technology Inc. Copyright RAiO Technology Inc. 2013 RAiO TECHNOLOGY INC. www.raio.com.tw Revise History Version Date Description 0.1 September 01, 2014

More information

穨ac3-3.PDF

穨ac3-3.PDF 3-1 Access 3-1-1 Event Click OnClick Click OnClick AfterUpdate BeforeUpdate On After Before > VBA( ) 3-1 3-1 Access Open Load Sub Funtion 3-1-2 Sub Funtion Private Me Me Forms Reports Form Report VisualBasic

More information

Microsoft Word - 小心翼翼的二十一點N.doc

Microsoft Word - 小心翼翼的二十一點N.doc 投 稿 類 別 : 資 訊 類 篇 名 : 小 心 翼 翼 的 二 十 一 點 作 者 : 陳 鈺 文 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 李 伯 謙 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 胡 家 媛 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 指 導 老 師 : 周 曉 玲 老 師 陳 思 亮 主 任 壹 前 言 一 研 究 動 機 平

More information

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple halcon 与 C# 混合编程之 Halcon 代码调用 写在前面 完成 halcon 与 C# 混合编程的环境配置后, 进行界面布局设计构思每一个按钮所需要实现 的功能, 将 Halcon 导出的代码复制至相应的 C# 模块下即可 halcon 源程序 : dev_open_window(0, 0, 512, 512, 'black', WindowHandle) read_image (Image,

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

01

01 ZEBRA 技术白皮书 条码编码 101 相关知识介绍 引言 20 70 数据 80 20 90 (JIT) AIAG EIA HIBCC HAZMAT 条码的优势提高数据准确性 99% 85% / / 提升效率 / 2 Zebra Technologies 保持一致性 ID 改进库存和资产管理 成本 / 效益分析 ID ID ID (ERP) RFID Zebra Technologies 3 ID

More information

12 计算机应用基础实训与习题指导 (Windows 7+Office 2010) 在任务栏对应的 计算机 窗口按钮上右击, 在弹出的快捷菜单中单击 关闭窗口 选项 在窗口标题栏上右击, 在弹出的快捷菜单中单击 关闭 命令 或鼠标双击窗口标题栏最左边的控制图标 在打开的窗口中, 按 Alt+F4 组

12 计算机应用基础实训与习题指导 (Windows 7+Office 2010) 在任务栏对应的 计算机 窗口按钮上右击, 在弹出的快捷菜单中单击 关闭窗口 选项 在窗口标题栏上右击, 在弹出的快捷菜单中单击 关闭 命令 或鼠标双击窗口标题栏最左边的控制图标 在打开的窗口中, 按 Alt+F4 组 第 2 章 Windows 7 操作系统实训 实训二 Windows 7 基本操作 实训目标 (1) 会进行 Windows 7 的窗口操作 (2) 会进行 Windows 7 应用程序的启动和退出 (3) 会进行桌面背景和屏幕保护程序个性化设置 (4) 通过控制面板的使用, 认识其功能和作用 实训内容 1. 窗口操作 (1) 打开和关闭 计算机 窗口 (2) 调整窗口大小和移动窗口 (3) 切换和排列窗口

More information

PowerPoint Presentation

PowerPoint Presentation Visual Basic 2005 學 習 範 本 第 7 章 陣 列 的 活 用 7-1 陣 列 當 我 們 需 要 處 理 資 料 時, 都 使 用 變 數 來 存 放 資 料 因 為 一 個 變 數 只 能 代 表 一 個 資 料, 若 需 要 處 理 100 位 同 學 的 成 績 時, 便 要 使 用 100 個 不 同 的 變 數 名 稱, 這 不 但 會 增 加 變 數 名 稱 命 名

More information

图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, ( 沈郎文字 ) ISBN Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041

图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, ( 沈郎文字 ) ISBN Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041 图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, 2005.4 ( 沈郎文字 ) ISBN 7-5343-6512-0 Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041843 号 出版者社址网址出版人 南京市马家街 31 号邮编 :210009 http://www.1088.com.cn

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, ( 图灵程序设计丛书 ) ISBN Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算

图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, ( 图灵程序设计丛书 ) ISBN Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算 图灵程序设计丛书 程序员的数学 3: 线性代数 [ 日 ] 平冈和幸堀玄著 卢晓南译 图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, 2016.3 ( 图灵程序设计丛书 ) ISBN 978-7-115-41774-9 Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算机 数学基础 2

More information

Microsoft PowerPoint - 03.Fortran程序设计基础1

Microsoft PowerPoint - 03.Fortran程序设计基础1 简单 Fortran 90 程序的构造形式 : 第二讲 Fortran 程序设计基础 (2) [PROGRAM 程序名 ] [ 声明语句 ] [ 执行语句 ] END [PROGRAM [ 程序名 ]] 程序的书写 (P5) PROGRAM MONEY!calculate balance after interest compounded! 根据利息计算余额 REAL BALANCE, INTEREST,

More information

QY

QY Visual Basic 程序设计与实训教程 王金峰主编 北京 内容简介 本书较为详细地介绍了 Visual Basic 程序设计的基础知识, 并结合实例来说明 Visual Basic 程序设计的具体步骤和各种控件及工具的使用方法 本书共分 11 章, 内容包括 Visual Basic 程序设计基础, 结构化程序设计, 常用控件, 数组和过程, 界面设计, 图形设计, 文件, 数据库, 对象的链接

More information

四川省普通高等学校

四川省普通高等学校 四 川 省 普 通 高 等 学 校 计 算 机 应 用 知 识 和 能 力 等 级 考 试 考 试 大 纲 (2013 年 试 行 版 ) 四 川 省 教 育 厅 计 算 机 等 级 考 试 中 心 2013 年 1 月 目 录 一 级 考 试 大 纲 1 二 级 考 试 大 纲 6 程 序 设 计 公 共 基 础 知 识 6 BASIC 语 言 程 序 设 计 (Visual Basic) 9

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

<443A5CD3AACFFACEC4BCFE5CCDBCCAE9D0C5CFA25C2B2B2BCEB4CCE1BDBB5C D385C E4E4554B3CCD0F2C9E8BCC6CAB5D1B5BDCCB3CC5C574A30312E646F63>

<443A5CD3AACFFACEC4BCFE5CCDBCCAE9D0C5CFA25C2B2B2BCEB4CCE1BDBB5C D385C E4E4554B3CCD0F2C9E8BCC6CAB5D1B5BDCCB3CC5C574A30312E646F63> 第 1 章 本章将介绍 VB.NET 语言的相关概念, 包括 VB.NET 的发展历程,VB.NET 的特点, VB.NET 集成开发环境的搭建, 使读者对 Visual Studio 2013 和 SQL Server 2005 的安装有宏观的认识和了解 ; 最后通过一个简单的例题使读者对 VB.NET 语法和应用程序的创建有一个感性的认识 1.1 VB.NET 语言简介 VB.NET 是计算机中实现网络功能的一种编程语言,

More information

Microsoft Word - 第5章.doc

Microsoft Word - 第5章.doc 过程和函数就是在程序中可以被重复使用的代码 当应用程序比较复杂时, 开发人员可能需要在程序中多处使用相同的代码 在 Visual Basic 应用程序开发中, 重要任务之一就是创建可重复使用的代码 通过学习本章, 读者可以熟练掌握过程和函数的定义及使用方法 5.1 过程 过程就是在应用程序可以被多次重复使用的代码段 使用过程具有以下优点 : 复杂任务分解成多个简单代码段 ; 易于读写, 具有较强的可读性和可维护性

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 Excel VBA 的开发环境 通过在 Excel 中录制的宏, 可反复执行一些重复操作, 在一定程度上可提高用户的工作效率 对于录制的宏, 有时还需要对录制的代码进行编辑修改 更多的情况是, 用户需要直接编写代码, 或设计与用户交互的窗体 这些操作都需要在 Excel VBA 的开发环境 VBE 中进行 本章将详细介绍 VBE 开发环境的使用 3.1 VBE 简介 VBE 是编写 VBA

More information

MVB-1001.DOC

MVB-1001.DOC 20 1.5 10 15 20 25 80 100 CSF 1. 2. 0105 3. 4. 5. 30% 1.5 0.75 1. Visual Basic Visual Basic (A) Visual Basic Enterprise Edition (B) Visual Basic Script Edition (C) Visual Basic Learning Edition (D) Visual

More information

专注于做最好的嵌入式计算机系统供应商

专注于做最好的嵌入式计算机系统供应商 专注于做最好的嵌入式计算机系统供应商 基于 ARMSYS2440/2410 开发应用程序 (EVC&VS2005) Rev 1.0 2008 年 3 月 24 日 杭州立宇泰电子有限公司 HangZhou LiYuTai Elec.Co.,Ltd 开发应用程序的过程一般分两步, 第一步在 PC 机开发环境下设计和编译应用程序, 第二步将它下载到 目标系统, 也就是我们的 ARMSYS2440 平台上运行

More information

内 容 提 要

内 容 提 要 Visual Basic 6.0 程序设计基础教程 罗朝盛主编 余文芳 副主编 人民邮电出版社 前 言 Visual Basic 6.0 程序设计教程 于 2002 年 9 月由人民邮电出版社出版以来, 受到广大读者的欢迎, 被全国几十所各类高等学校选做教材 在两年多的时间里, 先后 8 次重印, 与教材配套的实验 CAI 系统也被很多高校采用, 得到了不少专家 老师和学生的好评 Visual Basic

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章流程控制和数组 3.1 实验目的 (1) 熟练掌握控制台应用程序的代码编写和调试, 以及运行方法 (2) 掌握选择结构的一般语法格式和应用 (3) 掌握 switch 语句的用法 (4) 掌握选择结构的嵌套的用法, 能灵活使用选择结构解决实际问题 (5) 掌握 while 循环语句的一般语法格式 (6) 掌握 for 循环语句的一般语法格式 (7) 掌握循环嵌套的语法格式 (8) 掌握一维数组的定义

More information

第四章 102 图 4唱16 基于图像渲染的理论基础 三张拍摄图像以及它们投影到球面上生成的球面图像 拼图的圆心是相同的 而拼图是由球面图像上的弧线图像组成的 因此我 们称之为同心球拼图 如图 4唱18 所示 这些拼图中半径最大的是圆 Ck 最小的是圆 C0 设圆 Ck 的半径为 r 虚拟相机水平视域为 θ 有 r R sin θ 2 4畅11 由此可见 构造同心球拼图的过程实际上就是对投影图像中的弧线图像

More information

F515_CS_Book.book

F515_CS_Book.book /USB , ( ) / L R 1 > > > 2, / 3 L 1 > > > 2 + - 3, 4 L 1 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 ( ) GSM 手机已连接到 GSM 网络 指示条越多, 接收质量越好 2 ...........................4.............................. 4 Micro SD (

More information

Microsoft Word - FM{new}.doc

Microsoft Word - FM{new}.doc Lanczos 方法 Louis Komzsik 著张伟廖本善译 演变与应用 清华大学出版社 北京 内容简介 Lanczos 方法是 20 世纪计算数学方向最有影响的方法之一, 并且已经在工程中得到了广泛应用. 本书兼顾了 Lanczos 方法的理论演变和工程中的实际应用, 其内容分为两部分 : 第一部分阐述了方法的演变, 并提供了具体算法 ; 第二部分讨论了工业中的实际应用, 包括常用的模态分析

More information

4. 有程序代码如下 : Text!' Text= "Visual Basic" 则 Te xtl ~ Te xt, 和 " V i s ua l Basi c " 分别代表 ( ) A. 对象, 值, 属性 B. 对象, 方法, 属性 C. 对象, 属性, 值专 D. 属性, 对象, 值 5. 要

4. 有程序代码如下 : Text!' Text= Visual Basic 则 Te xtl ~ Te xt, 和  V i s ua l Basi c  分别代表 ( ) A. 对象, 值, 属性 B. 对象, 方法, 属性 C. 对象, 属性, 值专 D. 属性, 对象, 值 5. 要 试卷代号 : 2 2 3 1 中央广播电视大学 2 0 1 3-20 1 4 学年度第一学期 " 开放专科 " 期末考试 Visual Basic 程序设计 试题 2014 年 1 月 注意事项 一 将你的学号 姓名及分校 { 工作站 } 名称填写在答题纸的规定栏内 考试结束后, 把试卷和答题纸放在桌上 试卷和答题纸均不得带出考场 监考人收完考卷和答题纸后才可离开考场 二 仔细读懂题目的说明, 并按题目要求答题

More information

第四章 查询与视图

第四章  查询与视图 第七章 面向对象的程序设计与表单设计 实验与实验指导 实验六面向对象的程序设计与表单设计 (4 学时 ) 一 实验目的 1 了解面向对象程序设计的相关概念, 包括 : 对象 类 属性 事件与方法程序的概念 ; 对象的特性 ; 对象的绝对引用与相关引用 ; 常见的对象属性 常用的触发与方法程序 2 了解可视化面向对象程序设计的方法与步骤 3 掌握表单的设计与创建, 包括 : 数据环境的概念与应用 ;

More information

科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心 www.aboo 科学出版社职教技术出版中心

More information

untitled

untitled 21 Visual FoxPro Visual FoxPro 6.0 11 Visual FoxPro Visual FoxPro CIP Visual FoxPro 2004 21 ISBN 7-03-014834-7 V Visual FoxPro TP311.138 CIP 2004 143035 16 100717 http://www.sciencep.com * 2004 12 7871092

More information

普通高等教育 十二五 规划教材公共课系列 高级语言程序设计 Visual Basic 实训 刘立群刘冰周颖 主编 刘哲邹丽娜杨林姣宋倬 副主编 杨林姣宋倬参 周进钱进参 编 编 科学出版社职教技术出版中心 www.aboo 北 京 内容简介本书是 高级语言程序设计 Visual Basic ( 刘立群等主编, 科学出版社出版 ) 的配套教材, 全书包括实验篇和习题篇 实验篇是根据教程中知识点精心设计的上机实验内容,

More information

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7>

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7> 能源与动力工程学院 结构化编程 结构化程序设计 循环 循环结构 确定性循环 非确定性循环 I=1 sum=sum+i I = I +1 陈 斌 I>100 Yes No 目录 求和 :1+2+3++100 第四节循环的应用 PROGRAM GAUSS INTEGER I, SUM 计数器 SUM = 0 DO I = 1, 100, 1 SUM = SUM + I print*, I, SUM DO

More information

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/ 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:// 不能以数字开头 D._3_ B:// 不能用点和空格 提问 抢答 E.$anothervar C: // 不能用点和空格

More information

!"# $ %&'!"#$

!# $ %&'!#$ !"# $ %&'!"#$ 内容简介本书是在作者已经出版的 XilinxAlProgrammableZynq-7000SoC 设计指南 一书的基础上进行大幅度修订而成的 本书的一大特色就是更加突出 ARMCortex-A9 双核处理器的使用 此外, 在修订本书时采用了 Xilinx 最新的 Vivado2015 4 集成开发环境 通过本书的修订, 能反映最新的 ARM 嵌入式设计技术和实现方法, 同时也能更加凸显采用异构架构的

More information

Linux服务器构建与运维管理

Linux服务器构建与运维管理 1 Linux 服务器构建与运维管理 第 2 章 :Linux 基本命令 阮晓龙 13938213680 / rxl@hactcm.edu.cn http://linux.xg.hactcm.edu.cn http://www.51xueweb.cn 河南中医药大学管理科学与工程学科 2018.3 2 提纲 目录与文件的操作 mkdir touch mv cp rm rmdir file tree

More information

付宝容器 jsapi 档 册 PDF 版本 本版本为实验版本, 为线下独 查看使, 受制于 成 PDF 程序的限制, 样式问题还没有很好的解决, 例如分 切图 代码 亮 推荐使 在线版本, 便实时查看 jsapi 运 效果 如需搜索, 使 阅读 PDF 软件 带功能即可 更多细节样式调整和 录索引探

付宝容器 jsapi 档 册 PDF 版本 本版本为实验版本, 为线下独 查看使, 受制于 成 PDF 程序的限制, 样式问题还没有很好的解决, 例如分 切图 代码 亮 推荐使 在线版本, 便实时查看 jsapi 运 效果 如需搜索, 使 阅读 PDF 软件 带功能即可 更多细节样式调整和 录索引探 付宝容器 jsapi 档 册 PDF 版本 本版本为实验版本, 为线下独 查看使, 受制于 成 PDF 程序的限制, 样式问题还没有很好的解决, 例如分 切图 代码 亮 推荐使 在线版本, 便实时查看 jsapi 运 效果 如需搜索, 使 阅读 PDF 软件 带功能即可 更多细节样式调整和 录索引探索建设中 成时间 : 2017-07-20 12:13:21 Since 8.6 定义键盘 定义键盘使

More information

图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, ISBN Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 04185

图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, ISBN Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 04185 图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, 2005.4 ISBN 7-5343-6528-7 Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 041850 号 出版者社址网址出版人 南京市马家街 31 号邮编 :210009 http://www.1088.com.cn

More information

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y

LEFT, RIGHT // 左 // 右 (2) 当图片移动后, 按钮的坐标发生改变, 此操作通过 setloca tion() 方法实现 setlocation() 方法是从 Component 类继承的, 其定义如下 : public void setlocation(int x, int y 拼图游戏 任务说明 本实例实现了拼图游戏的开发 运行程序, 单击 开始 按钮将打乱图片的位置, 效果如图 1 所示, 然后通过鼠标单击图片进行移动, 直到将所有图片都移动到正确位置, 游戏过关, 过关后的效果如图 2 所示 图 1 打乱图片位置的效果图 2 图片移动到正确位置的效果 关键技术 本程序主要通过 Swing 与枚举类实现, 程序将一幅完整的图片平均分成 9 部分, 每一部分为一个正方形,

More information

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344> 1. 請 問 誰 提 出 積 體 電 路 (IC) 上 可 容 納 的 電 晶 體 數 目, 約 每 隔 24 個 月 (1975 年 更 改 為 18 個 月 ) 便 會 增 加 一 倍, 效 能 也 將 提 升 一 倍, 也 揭 示 了 資 訊 科 技 進 步 的 速 度? (A) 英 特 爾 (Intel) 公 司 創 始 人 戈 登. 摩 爾 (Gordon Moore) (B) 微 軟 (Microsoft)

More information

Microsoft Word - 扉页.doc

Microsoft Word - 扉页.doc 21 世纪全国应用型本科计算机系列实用规划教材 Visual Basic 程序设计 主编闵联营董华松副主编任占营刘全参编张惠宋雅娟李艳勤黄源李会芳 Dreamweaver MX 2004 内容简介 Visual Basic 作为程序设计的入门语言, 具有易学易懂的特点 Windows 是当今主流操作系统, 而 Visual Basic 作为一种支持可视化程序设计的语言, 也是开发 Windows 应用程序最简单易学的语言之一

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc TwinCAT 2001.12.11 TwinCAT 1. TwinCAT... 3 2.... 4... 4...11 3. TwinCAT PLC... 13... 13 PLC IEC 61131-3... 14 4. TwinCAT... 17... 17 5. TwinCAT... 18... 18 6.... 19 Maschine.pro... 19... 27 7.... 31...

More information

Microsoft Word - 实验3.doc

Microsoft Word - 实验3.doc 实验 3 C# 和 ASP.NET 4.5 一 实验目的 (1) 了解 C# 语言规范 (2) 掌握 C# 基础语法 流程控制和异常处理等 (3) 掌握创建 C# 类并应用于 ASP.NET 4.5 页面中的方法 (4) 掌握 ASP.NET 4.5 页面的调试方法 二 实验内容及要求 1. 转换输入的成绩到相应的等级要求如下 : (1) 页面浏览效果如图 3-1 所示 (2) 成绩输入使用 TextBox

More information

图形图像处理 (Photoshop CS6) [ pixel ] % % % % dpi/inch dpi 150dpi 300dpi 002

图形图像处理 (Photoshop CS6) [ pixel ] % % % % dpi/inch dpi 150dpi 300dpi 002 第 1 章 初识 Photoshop CS6 本章学习要点 点阵图像的基本概念 常用图像格式的特性 Photoshop CS6 界面基本操作 图像的分辨率和像素 Photoshop 的应用领域 Photoshop 文件的管理 重点和难点 图像的像素和分辨率 Photoshop CS6 界面的基本操作 达成目标 理解像素和分辨率的关系 了解图像的常用格式及特点 掌握 Photoshop CS6 界面基本操作及对图像进行不同格式的保存管理

More information

IsPostBack 2

IsPostBack 2 5 IsPostBack 2 TextBox 3 TextBox TextBox 4 TextBox TextBox 1 2 5 TextBox Columns MaxLength ReadOnly Rows Text TextMode TextMode MultiLine TextMode MultiLine True False TextMode MultiLine Password MulitLine

More information

1. 要退出 Do---Loop 循环, 可使用的语句是 ( ) 语句 A. Exit B. Exit For C. Exit Do D. End Do 5. 有程序代码如下 : Text1. Text=" 欢迎学习 VB!" 则 T e x t 1, Text, 和 " 欢迎学习 VB!" 分别代

1. 要退出 Do---Loop 循环, 可使用的语句是 ( ) 语句 A. Exit B. Exit For C. Exit Do D. End Do 5. 有程序代码如下 : Text1. Text= 欢迎学习 VB! 则 T e x t 1, Text, 和  欢迎学习 VB! 分别代 试卷代号 : 2 2 3 1 中央广播电视大学 2 0 1 2-2 0 1 3 学年度第二学期 " 开放专科 " 期末考试 Visual Basic 程序设计试题 2013 年 7 月 注意事项 一 将你的学号 姓名及分校 { 工作站 ) 名称填写在答题纸的规定栏内 考试结束后, 把试卷和答题纸放在桌上 试卷和答题纸均不得带出考场 监考人收完考卷和答题纸后才可离开考场 二 仔细读懂题目的说明, 并按题目要求答题

More information

启动 Visual Basic 系统, 创建一个 Form1 窗体 在该窗体上画一个图象框控件, 通过其属性窗口将名称设为 Image1, 通过其 Picture 属性将 pic1.jpg 装入图片框,Stretch 属性设为 True 画二个命令按钮控件, 通过其属性窗口将名称分别设为 Comma

启动 Visual Basic 系统, 创建一个 Form1 窗体 在该窗体上画一个图象框控件, 通过其属性窗口将名称设为 Image1, 通过其 Picture 属性将 pic1.jpg 装入图片框,Stretch 属性设为 True 画二个命令按钮控件, 通过其属性窗口将名称分别设为 Comma 二级 VB 上机试题汇编 第 01 套 : 1. 基本操作 (2 小题, 每小题 15 分, 共计 30 分 ) 请根据以下各小题的要求设计 Visual Basic 应用程序 ( 包括界面和代码 ) (1) 在名称为 Form1 的窗体上画一个名称为 Text1 的文本框, 其高 宽分别为 400 2000 请在属性框中设置适当的属性满足以下要求 : 1)Text1 的字体为 黑体, 字号为 四号

More information

内容简介 本书是 Visual Basic 程序设计 ( 科学出版社出版, 范通让 王学军主编 ) 的配套实训教材, 由两部分组成 第一部分是实训指导, 共 15 个实训项目, 每个实训项目均指出了本部分需掌握的重点内容, 并给出了理论知识要点 实训步骤及程序代码, 使学生能逐步了解 Visual

内容简介 本书是 Visual Basic 程序设计 ( 科学出版社出版, 范通让 王学军主编 ) 的配套实训教材, 由两部分组成 第一部分是实训指导, 共 15 个实训项目, 每个实训项目均指出了本部分需掌握的重点内容, 并给出了理论知识要点 实训步骤及程序代码, 使学生能逐步了解 Visual 普通高等教育 十二五 重点规划教材计算机系列中国科学院教材建设专家委员会 十二五 规划教材 Visual Basic 程序设计实训教程 王学军主编 赵涓涓副主编 杨艳主审 北京 内容简介 本书是 Visual Basic 程序设计 ( 科学出版社出版, 范通让 王学军主编 ) 的配套实训教材, 由两部分组成 第一部分是实训指导, 共 15 个实训项目, 每个实训项目均指出了本部分需掌握的重点内容,

More information

Microsoft PowerPoint - 面向对象编程若干思考.ppt [兼容模式]

Microsoft PowerPoint - 面向对象编程若干思考.ppt [兼容模式] 面向对象编程若干思考 面向对象编程教学中重点与难点 黎升洪 2011.01 面向对象的系统观 基于面向对象的系统观认为, 一个系统是由若干对象和这些对象间的交互构造而成 面向对象系统观反映了基于面向对象的方法如何构造软件系统 OO 教学中的问题 对象非常多每个对象 属性非常多方法 ( 事件 ) 非常多 容易迷失在细节中 只见树木, 不见森林 面向对象编程分层 初级阶段 中级阶段 高级阶段 (1) 初级阶段

More information

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony Ioncube Php Encoder 8 3 Crack 4 ->>->>->> DOWNLOAD 1 / 5 2 / 5 Press..the..General..Tools..category4Encrypt..and..protect..files..with..PHP..encoding,..encryption,..ob fuscation..and..licensing... 2016

More information

Microsoft Word - 01.doc

Microsoft Word - 01.doc 1. 数据库系统的核心是 ( ) A. 数据库 B. 操作系统 C. 文件 D. 数据库管理系统 2. 数据模型是 ( ) 的集合 A. 文件 B. 记录 C. 数据 D. 记录及其联系 3. 数据库系统的组成包括 ( ) A. 数据库 DBMS 和数据库管理员 B. 数据库 DBMS 硬件 软件 C.DBMS 硬件 软件和数据库 D. 数据库 硬件 软件和数据库管理员 4.Visual FoxPro

More information

Microsoft Word - QTP测试Flex.doc

Microsoft Word - QTP测试Flex.doc TIB 自动化测试工作室 http://www.cnblogs.com/testware 使用 QTP 进行 Flex 自动化测试 自动化测试工具与 Flex 应用程序之间是通过代理 (Agent) 来交互的, 如图所示 : 这也就是为什么后面在使用 QTP 进行 Flex 自动化测试之前要先安装 Flex 插件 配置和编译 Flex 程序的原因 前提条件 在使用 QTP 进行 Flex 4 的测试之前,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 第六章 表单及其控件的创建与使用 6.1 表单概述 表单 (Form) 类似于 Windows 中的各种标准窗口与对话框, 它是一种容器类, 可以包含多个控件对象, 用于处理各种数据, 或响应用户 / 系统事件以完成信息的处理 表单文件和表单备注文件, 扩展名分别为 SCX 和 SCT 创建表单的命令 :CREATE FORM 第 6 章表单及其控件的创建与使用 表单文件名 运行表单的命令 :DO

More information

目录 WinForms 版 ComponentOne SSRSDocumentSource... Error! Bookmark not defined. Winform 版 ComponentOne 工具组件帮助... 1 SSRSDocumentSource 快速入门... 1 在代码中设定网络

目录 WinForms 版 ComponentOne SSRSDocumentSource... Error! Bookmark not defined. Winform 版 ComponentOne 工具组件帮助... 1 SSRSDocumentSource 快速入门... 1 在代码中设定网络 ComponentOne SSRSDocumentSource for WinForms 入门教程 目录 WinForms 版 ComponentOne SSRSDocumentSource... Error! Bookmark not defined. Winform 版 ComponentOne 工具组件帮助... 1 SSRSDocumentSource 快速入门... 1 在代码中设定网络证书

More information

第8章 JavaScript对象层次与事件处理

第8章  JavaScript对象层次与事件处理 第 8 章 JavaScript 对象层次与事件处理 JavaScript 是一种面向对象的语言, 在 JavaScript 中的对象都是有层次的, 在本章里将会介绍 JavaScript 的对象层次和 JavaScript 的事件处理方式 8.1 JavaScript 的对象层次 JavaScript 中的对象很多, 这些对象并不都是独立存在的, 而是有着层次结构 对象可以依照层次来进行调用 8.1.1

More information

untitled

untitled 說 參 例 邏 邏 1. 說 2. 數 數 3. 8 4. 理念 李 龍老 立 1. 理 料 2. 理 料 3. 數 料 4. 流 邏 念 5. 良 6. 讀 行 行 7. 行 例 來 邏 1. 說 說 識 量 2. 說 理 類 3. 數 數 念 4. 令 5. 良 6. 流 邏 念 7. 說 邏 理 力 1. 2. 3. 4. 5. 列 念 1 參 1. ( Visual Basic 例 ) (1)

More information

Microsoft Word - ExcelVBARMJYY01.doc

Microsoft Word - ExcelVBARMJYY01.doc 第 章 Excel 2010 VBA 概述 VBA 是 Visual Basic for Applications 的简称, 是从 Visual Basic 衍生出来的建立在 Office 中的一种应用程序开发工具, 主要包括 Excel VBA Word VBA Project VBA Access VBA 等几个组件类型 其目的是帮助使用者根据自己的需要在 Office 环境中进行功能模块的定制与开发

More information

第1章 计算机基础知识

第1章  计算机基础知识 会计电算化 小蕾老师 微信 :huluo-xiaolei 贴吧 : 教导主任小蕾 EM:liuguolei@suanlands.com 有讲解 - 旧大纲 题海 模拟 题库中 1.1.1 初识 Word 2003 Word 2003 的启动和退出 Word 2003 窗口的组成 Word 2003 的视图方式 启动 Word 2003 的方法 : 1. 从开始菜单启动 Word 2003 的启动与退出

More information