版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VB经典教程精心整理快速入门演示文稿目前一页\总数五百三十三页\编于十七点1.1VisualBasic简介VisualBasic是一种可视化的、面向对象和采用事件驱动机制的结构化高级程序设计语言。它可用于开发Windows环境下的各类应用程序。它具有简单易学、效率高、功能强大的特点,可以与Windows专业开发工具SDK相媲美。在VisualBasic环境下,开发人员利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)函数、动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。目前二页\总数五百三十三页\编于十七点1.1.1版本区分VisualBasic有学习版、专业版和企业版三种版本,以满足不同层次的开发需要。不同版本编写的应用程序大多数可以在三种版本中通用。学习版为VisualBasic的基本版本,适用于初期学习者及使用VisualBasic开发一般应用程序的开发人员。专业版为专业开发人员提供了功能完备的软件开发工具。企业版为专业编程人员开发程序提供了功能强大的组内分布式应用程序。目前三页\总数五百三十三页\编于十七点1.1.2VisualBasic的特点1.可视化编程2.面向对象的程序设计3.事件驱动机制4.强大开放的特点目前四页\总数五百三十三页\编于十七点1.1.3集成开发环境目前五页\总数五百三十三页\编于十七点1.1.3集成开发环境目前六页\总数五百三十三页\编于十七点1.1.4面向对象功能从VisualBasic4开始,用户可以通过类模型方式创建和使用对象。对象可以被当作一个数据和单元的组合,如窗体、数据库等。VisualBasic对象可以封装属性、方法和事件,创建时可以重新定义其封装属性、方法和事件。VisualBasic对象可以极大简化重复代码的编写,使开发人员精力集中在程序内容而不是数量庞大的代码上。VisualBasic后续版本增强了该功能,并添加了许多新的面向对象的编程功能。目前七页\总数五百三十三页\编于十七点1.1.5数据访问在现代信息技术高度发达的今天,数据信息已经成为最重要资源之一。VisualBasic为开发人员提供了强大的数据访问技术,能够更快捷、更迅速、更高效地存储和读取数据信息。VisualBasic提供了更为强大功能来支持大中型数据库,如Oracle、SQLServer、Sybase等。目前八页\总数五百三十三页\编于十七点1.1.6Internet功能互联网(Internet)在现在通讯日益发达的信息世界占据了重要的地位。VisualBasic提供了许多功能为开发具有互联网功能的应用程序提供支持和帮助。VisualBasic在开发过程中可以创建服务器端的动态HTML(DHTML),使用InternetTransfer控件检索和传输文件,利用WebBrowser控件浏览网页信息,采用MAPI收发电子邮件等一系列激动人心的功能。目前九页\总数五百三十三页\编于十七点1.2VisualBasic6安装本节将介绍如何安装VisualBasic6开发环境。将VisualBasic6的安装光盘放入计算机的光驱内,一般情况下计算机可以自动运行其中的安装程序。如果计算机没有自动运行安装程序,双击光盘盘符下的Setup.exe文件,将显示VisualBasic安装程序界面,按照安装程序的提示进行相应的操作。目前十页\总数五百三十三页\编于十七点1.3开始使用VisualBasic6VisualBasic开发程序使用图形化界面与用户交流。本节介绍如何使用VisualBasic集成开发环境开发程序界面、设计窗体并通过实例演示如何使用VisualBasic进行应用程序开发。目前十一页\总数五百三十三页\编于十七点1.3.1开发界面1.标题栏2.菜单栏3.工具栏4.工具箱5.窗体设计窗口6.工程资源管理器7.“属性”面板8.“布局”面板目前十二页\总数五百三十三页\编于十七点1.3.2窗体使用应用程序界面是直接面对用户的窗体及其他控件。一个优秀的应用程序应该窗体界面简洁、漂亮,控件布局科学、合理,用户使用舒适、方便。本小节重点介绍窗体的使用技巧。窗体布局调整可以在“格式”菜单中调整,也可以在“窗体编辑器”工具栏中进行编辑。目前十三页\总数五百三十三页\编于十七点1.3.3第一个程序——Hello,World本节将创建第一个程序Hello-World。创建一个应用程序之前,必须明确以下几个重要步骤:(1)制定计划。(2)创建界面。(3)编写代码。(4)测试和调试程序。(5)生成可执行文件。(6)打包文件。目前十四页\总数五百三十三页\编于十七点1.3.3第一个程序——Hello,World目前十五页\总数五百三十三页\编于十七点1.3.3第一个程序——Hello,World目前十六页\总数五百三十三页\编于十七点1.3.4文件类型1.工程组和工程文件2.窗体文件3.程序模块文件4.类模块文件5.资源文件目前十七页\总数五百三十三页\编于十七点1.3.5编译可执行文件应用程序创建后,必须生成可执行文件才能发布给最终用户。VisualBasic中生成可执行文件操作非常简单。选择“文件”|“生成xxx.exe”命令(xxx为工程名称),弹出“生成工程”对话框.目前十八页\总数五百三十三页\编于十七点1.4常见问题及解答1.将VisualBasic程序安装光盘放入光驱内,为何不自动安装VisualBasic?2.VisualBasic程序安装后,如何在系统中运行VisualBasic程序?目前十九页\总数五百三十三页\编于十七点1.5小结本章简单介绍了VisualBasic基本知识、安装步骤、集成开发环境。本章重点和难点是如何安装VisualBasic和使用VisualBasic开发应用程序界面。读者需要重点练习使用VisualBasic集成开发环境。下一章将介绍数据类型、变量和常量。目前二十页\总数五百三十三页\编于十七点第2章数据类型、变量和常量数据是用来存储程序需要调用的文字、数值、对象、图像等,包括多种类型。变量是程序用来临时存储数据。常量是以字符串形式用来代替固定数值。本章内容包括:数据类型变量常量目前二十一页\总数五百三十三页\编于十七点2.1数据类型在应用程序中VisualBasic将以更高效率来处理已定义数据类型。VisualBasic包含七种数据类型,分别为数值型(Numeric)、字符型(String)、字节型(Byte)、布尔型(Boolean)、日期型(Date)、对象型(Object)、变体型(Variant)等。本节将详细介绍七种数据类型的定义和特点。目前二十二页\总数五百三十三页\编于十七点2.1.1数值型Numeric1.整数整型:整型取值范围为-32678~32677,以2个字节(16位)存储,用二进制码表示和参加运算。长整型:长整型取值范围为-2147483648~2147483647,以4个字节(32位)存储。2.浮点型(1)单精度型(2)双精度型(3)货币型目前二十三页\总数五百三十三页\编于十七点2.1.2字节型Byte字节型(Byte)专为存储二进制数值类型,以1个字节来存储。如果变量声明包含二进制数,则声明为Byte数据类型的数组。取值范围为:0~255。除了减法外,所有对整数进行处理的运算符均可处理该类型。目前二十四页\总数五百三十三页\编于十七点2.1.3字符型String字符型(String)为最通用的数据类型之一,用来储存文本信息。每个字符对应1个字节,由ASCII字符序列组成,包括标准的ASCII字符和扩展ASCII字符及汉字等。字符型为包含在双引号内的若干个字符。【示例2-3】显示不同类型字符串。“”表明长度为零的字符串为空字符串;“VisualBasic”表明为字母字符串,赋予变量为“VisualBasic”;“Hello,World2008。”表明为混合字符串。固定字符串最大取值范围为65535字节;变长字符串最大取值范围为0~231。目前二十五页\总数五百三十三页\编于十七点2.1.4布尔型Boolean布尔型(Boolean)为逻辑型,以2个字节来存储。它包含True或False、Yes或No。在程序中一般用于判断语句,或者声明该数值为两种状态,如“开”或“关”。目前二十六页\总数五百三十三页\编于十七点2.1.5日期型Date日期型(Date)为浮点数值形式保存,以8个字节存储。默认日期范围为1/1/100~1/1/9999。Windows操作系统下日期范围为1/1/1980~12/31/2099;时间范围为0:00:00~23:59:59。日期型数据用来表示日期类型,格式为:mm-dd-YYYY或者mm/dd/YYYY。在VisualBasic开发应用程序中可以定制日期模式:YYYY-mm-dd。(Y或y为年,m为月,d为日)。目前二十七页\总数五百三十三页\编于十七点2.1.6对象型Object对象型(Object)为保存引用应用程序中的对象,以4个字节(32位)来存储。它可以用来引用图形图像、Word文件、Excel文件等。如果在运行应用程序之前,VisualBasic定义该特定类型对象的属性和方法,应用程序在运行时速度会更快。目前二十八页\总数五百三十三页\编于十七点2.1.7变体型Variant变体型(Variant)能保存所有类型数据,可以随时转换该数据为其他类型。变体型可以在程序中直接声明定义,用户不必过多关注Variant变量中的类型。VisualBasic可以在应用程序运行时自动进行必要的转换。目前二十九页\总数五百三十三页\编于十七点2.1.8数据类型转换程序开发过程中,需要将不同数据类型进行必要的转换。VisualBasic提供了各种类型转换相关的函数,可以在程序中直接调用。如果想把某种数据类型转换为另外一种类型,必须保证该类型数值处于待转换数值有效范围内。转换函数转换类型中文名称Cbool()Boolean布尔型Cbyte()Byte二进制型Ccur()Currency货币型Cdate()Date日期型Cdbl()Double双精度型Cint()Integer整数型Clng()Long长整数型Csng()Single单精度型Cstr()String字符型Cvar()Variant变体型目前三十页\总数五百三十三页\编于十七点2.2变量简介变量在程序执行过程中用以保存临时数据信息,包含在程序执行阶段修改的数据。变量都有变量名称,在其作用范围内作为惟一标识存在。目前三十一页\总数五百三十三页\编于十七点2.2.1变量作用域声明变量可以使用Dim、Private、Public、Static作为关键字。以上关键字分别作用于不同的作用域。变量语句声明位置范围过程变量Dim或Static存在于过程,子过程或函数过程中声明段声明变量的过程、子过程或函数模块变量Private存在于窗体或代码模块声明段窗体或代码模块中过程全局变量PublicMain模块中声明段全部应用程序目前三十二页\总数五百三十三页\编于十七点2.2.2变量命名变量必须要命名后才能赋值。在过程内部声明的变量,在该过程执行时才存在。当运行过程结束时,该变量的值自动清除。变量命名必须符合以下规定:变量名必须以字母开头,不能以数字或下划线开始。变量不能包含嵌入的句号、空格或者其他停顿符号。变量长度不得超过255个字符。变量名不能是VisualBasic的保留字,如Name、For等。目前三十三页\总数五百三十三页\编于十七点2.2.2变量命名变量类型简化前缀标准化前缀整数(Integer)NInt长整型(Long)LLng单精度型(Single)FSng双精度型(Double)DDbl货币型(Currency)CCur字符串型(String)SStr布尔型(Boolean)BBln对象型(Object)OObj变体型(Variant)VVar目前三十四页\总数五百三十三页\编于十七点2.2.3变量类型变量类型包含2.1小节中所有的数据类型。除此之外,根据应用程序需要还可以创建用户自定义的类型。自定义类型声明使用Type语句。目前三十五页\总数五百三十三页\编于十七点2.2.4静态变量程序运行时变量保存临时数据。一旦程序终止,变量将自动被VisualBasic删除。下一次程序运行时该变量将重新被初始化。但是,应用程序在运行时也有可能需要保留变量数据。VisualBasic可以通过声明静态变量来保存记忆变量数值。Static[varName]as[type]目前三十六页\总数五百三十三页\编于十七点2.3变量声明VisualBasic中声明是事先将变量定义为保存数据内容。在变量使用之前,进行声明是一个重要的编程技巧。变量声明后可以在程序中更高效的使用变量。声明包括显式声明和隐式声明。本节将分别介绍如何显式声明、隐式声明和使用定长字符串。目前三十七页\总数五百三十三页\编于十七点2.3.1显式声明显式声明要求在程序中使用变量前,强制声明该变量。如果不声明该变量,将出现错误提示。显式声明使用OptionExplicit语句。选择“工具”|“选项”命令,弹出“选项”对话框。选择“编辑器”选项卡,复选“要求变量声明”选项。该复选框自动在新模块中自动插入以下语句。OptionExplicit目前三十八页\总数五百三十三页\编于十七点2.3.1显式声明DimvarName[Asvartype][,varName2Asvartype2]PrivatevarName[Asvartype][,varName2Asvartype2]PublicvarName[Asvartype][,varName2Asvartype2]StaticvarName[Asvartype][,varName2Asvartype2]目前三十九页\总数五百三十三页\编于十七点2.3.2隐式声明编号变量类型显示字符1整数(Integer)%2长整型(Long)&3单精度型(Single)!4双精度型(Double)#5货币型(Currency)@6字符串型(String)$7字节型(Byte)无8布尔型(Boolean)无9日期型(Date)无10对象型(Object)无11变体型(Variant)无目前四十页\总数五百三十三页\编于十七点2.3.2隐式声明nNumber%=0 ‘将nNumber尾部添加%表示为整数sString$=”VisualBasic” ‘将sString尾部添加$表示为整数vVar=6目前四十一页\总数五百三十三页\编于十七点2.3.3定长字符串VisualBasic中也可以声明定义定长字符串,最长为216个字符。该字符串大小长度是固定不变的。如果该变量被赋予短于该长度的表达式,变量的剩余长度将以空格填充。如果长于该长度,自动截取等于该长度的字符,其余部分将被截取。DimvarNameasstring*strlength目前四十二页\总数五百三十三页\编于十七点2.4常量简介常量与变量区别在于运行过程中常量表示不变的数值或字符串。常量用以代替繁复难以记忆或输入的数值或字符。变量可以在程序中根据需要修改数据,常量在定义之后无法进行修改。常量的使用有助于改进代码的可读性和可维护性。目前四十三页\总数五百三十三页\编于十七点2.4.1标准常量VisualBasic为应用程序开发提供了许多标准常量。例如,颜色定义常量、关键代码常量等可以在开发过程直接引用。例如,vbBlack在VisualBasic定义为黑色,vbWhite为白色、vbBlue为蓝色。用户可以在程序开发中直接使用该常量。Form1.backcolor=vbBlack ‘窗体背景颜色赋予黑色Form1.Forecolor=vbWhite ‘窗体前景色赋予白色目前四十四页\总数五百三十三页\编于十七点2.4.1标准常量目前四十五页\总数五百三十三页\编于十七点2.4.2自定义常量虽然VisualBasic中为开发人员提供了大量标准常量,根据应用程序开发需要使用自定义常量。自定义常量使用Const语句进行定义,赋予常量名称和数值。[Public|Private]constvarNameasconsttype=value目前四十六页\总数五百三十三页\编于十七点2.5本章实例本章实例实现显式声明、隐式声明变量、声明静态变量、声明常量。【实例2-1】将使用VisualBasic程序创建一个新工程,添加一个新窗体,在代码编辑窗口中输入代码要求强制显式声明变量,并在代码中赋予显式声明变量、隐式声明变量和自定义常量内容。目前四十七页\总数五百三十三页\编于十七点2.6常见问题及解答1.既然变体型变量可以包含所有类型数值,是否可以将变量直接声明为变体型?2.数值型变量包含多种不同类型。声明何种类型将更高效率在程序中使用数值型变量?3.字符型变量中的数字是否可以进行数学运算?目前四十八页\总数五百三十三页\编于十七点2.7小结本章介绍了VisualBasic中数据类型的定义、如何显示或隐式声明变量和常量、变量和常量的定义及适用范围。本章重点和难点包括如何定义和使用各种数据类型的变量、常量。变量包括多种数据类型,VisualBasic中自定义常量数量庞大不易于记忆和开发使用。读者需要在开发过程中结合实例声明变量和常量。下一章将介绍程序设计基础。目前四十九页\总数五百三十三页\编于十七点第3章程序设计基础程序设计基础为程序设计所必需的基础知识。这部分内容主要包括赋值语句、数学运算语句、代码编写、流程控制等。创建用户界面形成应用程序的外表和框架,还需要为应用程序添加代码。本章内容包括:赋值语句数学运算语句代码模块编写事件目前五十页\总数五百三十三页\编于十七点3.1赋值语句赋值,顾名思义是将字符、数值等赋予变量。在程序开发过程中,创建一个变量后,必须通过设置一个等号赋予变量数值。[Let]varName=Expression目前五十一页\总数五百三十三页\编于十七点3.2数学运算语句数学运算运算符号加法+减法-乘法*除法/整除\求模运算Mod指数运算^(TxtTax+100)*1.089/69目前五十二页\总数五百三十三页\编于十七点3.2.1加法和减法1.加法运算Result=Expression1+Expression22.减法运算Result=Number1-Number2目前五十三页\总数五百三十三页\编于十七点3.2.2乘法和除法1.乘法运算Result=Number1*Number22.除法运算Result=Number1/Number2Result=Number1\Number2Result=Number1ModNumber2目前五十四页\总数五百三十三页\编于十七点3.2.3指数运算VisualBasic中指数运算符是符号“^”,用来求一个数字的次方。Result=Number^Exponent目前五十五页\总数五百三十三页\编于十七点3.2.4比较运算符比较运算符用来比较两个操作数的大小。比较运算符运算结果是一个逻辑值True或False。运算符比较表达式=相等X=Y<>不相等X<>Y<小于X<Y>大于X>Y<=小于等于X<=Y>=大于等于X>=Y目前五十六页\总数五百三十三页\编于十七点3.2.5逻辑运算符逻辑运算又被称为布尔运算。逻辑运算符要求两个操作数都为逻辑值。逻辑中文说明表达式Not非“取反”运算。True取反值为False,False取反为True。NotXAnd与当左右操作数都为True时,结果为True,否则为False。XandYOr或左右操作数只要一个为True,结果为True。只有两个操作数的值都为False时,运算结果为False。XorYXor异或左右操作数相等都为True或False,结果为False;否则为True。XXorYEqv等价左右操作数相等都为True或False,结果为True;否则为False。XeqvYImp蕴含左操作数为True,右操作数为False,结果为False。其余三种为True。XimpY目前五十七页\总数五百三十三页\编于十七点3.2.6运算顺序算术比较逻辑指数运算(^)相等(=)Not负数(–)不等(<>)And乘法和除法(*、/)小于(<)Or整数除法(\)大于(>)Xor求模运算(Mod)小于或相等(<=)Eqv加法和减法(+、–)大于或相等(>=)Imp字符串连接(&)
目前五十八页\总数五百三十三页\编于十七点3.3代码模块VisualBasic的程序代码存储在代码模块中。代码模块包括三种类型:窗体模块、标准模块和类模块。以上三种模块都可以包含作用域不同的声明段和过程。本小节分别介绍窗体模块、标准模块和类模块。目前五十九页\总数五百三十三页\编于十七点3.3.1窗体模块在VisualBasic开发程序过程中,最简单的应用程序只包含一个窗体,应用程序的所有代码都保存在窗体模块中。窗体模块(后缀frm)是大多数VisualBasic应用程序的基础。窗体模块可以包含处理事件的过程、通用过程以及变量、常数、类型和外部过程的窗体级声明。目前六十页\总数五百三十三页\编于十七点3.3.2标准模块标准模块(后缀bas)在应用程序中保存其他模块访问的全局过程、函数、声明。当开发的应用程序相对庞大复杂时,在不同窗体中包含相同的可执行的公共代码。可在标准模块中编写该公共代码并允许被其他窗体或模块调用。目前六十一页\总数五百三十三页\编于十七点3.3.3类模块VisualBasic中类模块(后缀cls)是面向对象编程的基础。开发时可以在类模块中编写代码建立新对象。该新对象可以包含自定义的属性和方法。实际上窗体正是这样一种类模块,可显示为内置其他控件的窗体。目前六十二页\总数五百三十三页\编于十七点3.4事件简介事件是一种响应指定时间被特定对象(窗体或控件等)识别并执行的操作。开发人员可以在事件过程中编写特定程序代码,事件一旦发生就会被执行。每个对象都包括一组事件集合。本节将介绍如何编写和调用事件过程。目前六十三页\总数五百三十三页\编于十七点3.4.1编写事件过程事件说明Change用户更改文本信息时引发Click用户单击鼠标时引发(一般为鼠标左键)Dblclick用户双击鼠标时引发Gotfocus对象获得焦点时引发Lostfocus对象失去焦点时引发Keypress焦点对象按键并松开引发KeyDown焦点对象按键引发Keyup焦点对象松开引发MouseDown鼠标在对象上按下鼠标按钮引发Mouseup鼠标在对象上松开鼠标按钮引发Mousemove鼠标在对象上移动时引发目前六十四页\总数五百三十三页\编于十七点3.4.2调用事件过程应用程序开发时需要编写和调用许多过程。事件过程是由VisualBasic调用自身的特殊过程。与普通过程调用相同,需要在不同时段中运行相同事件过程。只要调用事件过程名称正确,就可以在多处运行该事件过程。PrivateSubCommand1_Click() MsgBox"当前日期为:"&Date EndSubPrivateSubForm_Load()CallCommand1_ClickEndSub目前六十五页\总数五百三十三页\编于十七点3.5编辑代码本节介绍如何编写代码,包括合并多个代码行、添加注释以及VisualBasic命名约定。目前六十六页\总数五百三十三页\编于十七点3.5.1单行语句分成多行复杂应用程序代码编写过程中会遇到非常长的字符串。为了更好的编写代码,可以使用续行符(一个空格和一个下划线)将一段长语句分成多行。使用续行符使代码易于阅读和编写。Data1.recordsource=&_ “Select*fromtitle_company”&_“wheretitleName=’salary’”&_”andcompany=’skyrising’”目前六十七页\总数五百三十三页\编于十七点3.5.2多行语句合并一行一般情况下,VisualBasic一行只有一条语句。但是可以将两条或多条短语句合并到一行,中间需要用冒号(:)将其分开。nRed=38:ngreen=36:nblue=128:nmycolor=nRed+ngreen+nblue
目前六十八页\总数五百三十三页\编于十七点3.5.3添加注释优秀的程序员都具有在关键步骤下添加注释的好习惯。添加注释需要在VisualBasic一条语句的最后添加注释符(')或关键字Rem。注释符在程序运行时会通知VisualBasic自动忽略注释符之后的语句。这样便于日后检查修改程序。‘这是第一条注释内容,以后将会有大量注释添加Rem这是用rem添加注释内容Msgbox“添加注释是一个良好的习惯”目前六十九页\总数五百三十三页\编于十七点3.5.4命名约定在编写VisualBasic代码时,分别要给变量、常量、函数、过程命名。在声明变量、常量、函数、过程时必须遵守以下命名规定:命名必须以字母开头。命名不可以超过255个字符。命名不可以包含特殊符号。命名不可以和默认关键字同名。目前七十页\总数五百三十三页\编于十七点3.6本章实例本节主要鼠标移动时显示横坐标和纵坐标的差值。【实例3-1】编写窗体Mousemove事件,显示鼠标横坐标和纵坐标的差值。目前七十一页\总数五百三十三页\编于十七点3.7常见问题及解答1.是否可以使用Name、Dim等与关键字同名赋予变量、函数等?2.添加注释是否增加程序大小、影响程序运行效率?3.编写程序代码时,经常出现提示“编译错误,缺少标识符”?目前七十二页\总数五百三十三页\编于十七点3.8小结本章主要介绍了VisulaBasic中赋值语句、数学运算语句、代码模块、编写事件、编辑代码、添加注释的使用方法。本章重点难点是比较运算符和逻辑运算符的使用。以上两种运算符逻辑复杂、不易于掌握。读者需要结合实例源码进行分析学习。目前七十三页\总数五百三十三页\编于十七点第4章流程控制流程控制是VisualBasic应用程序开发中对特定条件进行分析、比较、判断,主要包括判断语句和循环语句。判断语句为根据不同的判断结果进行不同的操作。循环语句可以进行多次数学运算。本章内容包括:判断语句。循环语句。目前七十四页\总数五百三十三页\编于十七点4.1判断语句判断语句在复杂应用程序流程控制中具有重要作用。程序中如果不添加判断语句,程序将从第一行代码开始运行,直至最后一行程序终止,无法响应用户的操作。判断语句可根据所给的条件控制程序流程,只运行其中特定程序代码。判断语句包括If语句和SelectCase语句。目前七十五页\总数五百三十三页\编于十七点4.1.1If语句应用程序中可能只需要运行某个符合条件的语句。If语句根据表达式的结果选择执行一段代码。标准语法有单行语句和多行语句两种形式。IfconditionThen[statements][ElseElsestatements]IfconditionThen[statements][Else][Elsestatements]EndIf目前七十六页\总数五百三十三页\编于十七点4.1.2多重If语句VisualBasic还支持多重If语句,对多个条件进行判断执行指定代码。IfconditionThen[statements][ElseIfcondition-nThen[ElseIfstatements][Else][Elsestatements]EndIf目前七十七页\总数五百三十三页\编于十七点4.1.3SelectCase语句判断语句另一个重要方法是使用SelectCase语句。根据运算表达式的条件结果,允许有条件执行多个代码段中的指定段。对于多重If语句,使用SelectCase语句相对更加富有可读性。SelectCasetestExpression[CaseExpressionlist1[statementblock-1]][CaseExpressionlist2[statementblock-2]]…..[CaseElse][statementblock-n]]EndSelect目前七十八页\总数五百三十三页\编于十七点4.2循环语句流程控制的重要方法之一是循环语句。循环语句主要在程序中重复运行特定任务。VisualBasic开发程序中主要包括计数循环、条件循环、枚举循环。本节主要讲述For循环(计数循环)、Do和While循环(条件循环)、For-each循环(枚举循环)。目前七十九页\总数五百三十三页\编于十七点4.2.1For循环ViusalBasic语言中使用For循环主要用来进行计数。For循环又可以称为For-Next循环,主要采用For关键字和Next关键字。ForCounter=StartToEnd[Stepstep][statements][ExitFor][statements]Next[counter]目前八十页\总数五百三十三页\编于十七点4.2.2Do循环For循环通过步长计数来运行程序。在特定条件下运行特定代码,需要用到Do循环和下节的While循环。Do循环通过判断表达式条件是True还是False来确定是否结束循环。Do[{While|Until}condition][statements][ExitDo][statements]Loop目前八十一页\总数五百三十三页\编于十七点4.2.3While循环在VisualBasic应用程序开发中,经常可以看到类似While-WEnd这样的循环语句。这种循环是早期版本遗留下来的,高版本的VisualBasic中依然支持此用法。但是,笔者推荐使用前两种循环。Whilecondition[statements]WEnd目前八十二页\总数五百三十三页\编于十七点4.2.4枚举循环枚举循环又被称为For-each-next循环。与For-next循环语句略有不同,它将数组或对象集合中的对象重复执行一段代码,并不是重复执行一定次数相同代码。For-each-next循环语句对不知数目的相同对象进行操作时具有明显优点。ForEachelementIngroup[statements][ExitFor][statements]Next[element]目前八十三页\总数五百三十三页\编于十七点4.3本章实例本章实例实现单行If语句、多重If语句判断工资范围计算税款、SelectCase语句判断不同职务人员工资和显示学生成绩、For循环显示高斯运算总和、Do循环显示5行#号、枚举循环显示打印机设备名称。【实例4-1】演示单行If语句的使用。目前八十四页\总数五百三十三页\编于十七点4.4常见问题及解答1.是否可以使用多重If语句代替SelectCase语句?2.运行包括循环语句的程序时系统没有任何反映?3.For循环与Do循环、While循环有什么区别?目前八十五页\总数五百三十三页\编于十七点4.5小结本章主要介绍了判断语句和循环语句的定义,主要包括If语句和SelectCase语句、For循环、Do循环、While循环、枚举循环的语法知识,以及如何根据应用程序需要使用判断和循环语句。其中,循环语句循环过程难于控制,需要结合实例多加分析和实践。目前八十六页\总数五百三十三页\编于十七点第5章过程和函数过程和函数就是在程序中可以被重复使用的代码。当应用程序比较复杂时,开发人员可能需要在程序多处使用相同的代码。在VisualBasic应用程序开发中,重要任务之一就是创建可重复使用的代码。本章内容包括:过程函数目前八十七页\总数五百三十三页\编于十七点5.1过程过程就是在应用程序可以被多次重复使用的代码段。使用过程具有以下优点:复杂任务分解成多个简单代码段;易于读写,具有较强的可读性和可维护性。前面章节介绍的事件过程就是VisualBasci定义过程的一种。本节介绍的过程是用户创建的自定义过程。目前八十八页\总数五百三十三页\编于十七点5.1.1Sub过程概述Sub过程是可以被重复执行的无返回值的代码段。[Private|Public][Static]SubName[(Arglist)][statements][ExitSub][statements]EndSub目前八十九页\总数五百三十三页\编于十七点5.1.2添加Sub过程添加Sub过程有第一种方法:目前九十页\总数五百三十三页\编于十七点5.1.2添加Sub过程添加Sub过程有第二种方法。Subshowmsg()EndSub目前九十一页\总数五百三十三页\编于十七点5.1.3调用Sub过程调用Sub过程主要使用Call语句或过程名+参数形式调用。CallSubName[Arglist]SubName[Arglist]目前九十二页\总数五百三十三页\编于十七点5.1.4使用SubMain1.设置启动窗体2.无启动窗体时启动目前九十三页\总数五百三十三页\编于十七点5.1.5确定过程作用域1.公共过程2.局部过程3.静态变量过程目前九十四页\总数五百三十三页\编于十七点5.2传递参数VisualBasic提供了非常灵活的传递参数方式,允许使用可选参数和可变参数,使用传值引用和传地址引用方法。[Optional][ByVal|ByRef][ParamArray]varName[()][Astype][=defaultvalue]目前九十五页\总数五百三十三页\编于十七点5.2.1可选参数和可变参数1.可选参数2.可变参数目前九十六页\总数五百三十三页\编于十七点5.2.2传值引用和传地址引用1.传值引用2.传地址引用Subprog(byvalaasinteger)‘(添加代码)EndSubSubprog(byrefaasinteger)‘(添加代码)EndSub目前九十七页\总数五百三十三页\编于十七点5.3函数函数为编辑代码时可以被程序调用带有返回值的代码段。本节将介绍函数定义和使用方法。目前九十八页\总数五百三十三页\编于十七点5.3.1定义函数Function过程又被称为函数过程,与VisualBasic内置函数完全相同。函数与子过程区别为,函数带有返回值,而子过程没有返回值。[Public|Private|Static]FunctionName[(Arglist)][Astype][statements][Name=Expression] [ExitFunction] [statements] [Name=Expression]EndFunction目前九十九页\总数五百三十三页\编于十七点5.3.2确定函数作用域1.公共函数2.局部函数3.静态变量函数目前一百页\总数五百三十三页\编于十七点5.3.3调用函数函数调用和过程调用基本相似,惟一不同之处在于函数可以有返回值。如果无返回值,用Call语句调用函数。CallfunName[Arglist]Return=funName[Arglist]目前一百零一页\总数五百三十三页\编于十七点5.3.4传递参数和返回值函数传递参数的方法与过程完全相同。不在此赘述。函数与过程最重要的区别是函数有返回值。过程的数据类型决定其返回值的数据类型。可以在Arglist之后使用As关键字来指定函数返回值的数据类型。在Arglist中,可以使用As子句来指定任何传给该过程的参数的数据类型。不但可以指定为任何标准数据类型,还可以在Arglist中指定AsAny来禁止类型检查,从而允许将任意数据类型传递给该过程。目前一百零二页\总数五百三十三页\编于十七点5.4本章实例本章实例创建过程、函数计算三个数平方之和、创建加密字符串。【实例5-1】创建一个过程,计算三个数平方之和。
图5.4运行窗体
目前一百零三页\总数五百三十三页\编于十七点5.5常见问题及解答1.过程或函数在窗体和模块有什么区别?2.参数可以设计为可选参数和可变参数,是否可以多设计几个可选参数?3.如何使用传值引用和传地址引用?目前一百零四页\总数五百三十三页\编于十七点5.6小结本章主要介绍了过程和函数的定义以及如何根据应用程序的需要调用过程和函数。本章重点难点包括:过程和函数如何传递参数、函数如何返回值。其中,函数传递参数和返回值结构复杂难于掌握。目前一百零五页\总数五百三十三页\编于十七点第6章数组数组是具有相同名字、不同下标的一组变量。使用数组可以缩短和简化程序,可以利用索引值设计循环,高效处理各种程序运行需要。数组包括固定大小的数组和动态数组。本章内容包括:固定数组。动态数组。目前一百零六页\总数五百三十三页\编于十七点6.1固定数组固定数组顾名思义就是固定元素数量的数组。固定数组包括一维数组和多维数组。固定数组中使用一个下标就能确定数组元素在数组中的位置称为一维数组。具有两个或多个下标的变量数组称为二维或多维数组。本节将介绍固定数组的定义和使用方法。目前一百零七页\总数五百三十三页\编于十七点6.1.1声明数组数组和变量使用方法不完全相同。变量可以有隐式声明。数组必须显式声明后使用。[Public|Dim|private|static]arraryname([Num1to]Num2)as[type]目前一百零八页\总数五百三十三页\编于十七点6.1.2设定上下界VisualBasic声明数组时,在数组名之后跟一个用括号括起来的上界。上界不得超过长整型Long数据类型的范围(-2,147,483,648到2,147,483,647)。默认下标下界为0。如果希望下标下界从1开始,可以通过OptionBase语句来声明。该语句用来指定数组下标默认下界。Optionbase1 ‘数组下界从1开始DimNumbers(10)AsInteger ‘数组包含10个元素DimSums(20)AsDouble ‘数组包含20个元素目前一百零九页\总数五百三十三页\编于十七点6.1.3多维数组多维数组与一维数组相对应。多维数组在现实生活中具有很重要的意义。如屏幕坐标、三维动画数据的设定值等是典型的多维数组。声明多维数组与一维数组完全相同。Dimmatrix(9,9)asintegerDimmatrix(9,9,9)asinteger目前一百一十页\总数五百三十三页\编于十七点6.2动态数组动态数组可以在程序运行时动态改变数组大小。VisualBasic应用程序开发中需要动态数组来保存多维数组数值。动态数组具有灵活方便管理数组的能力。本节介绍动态数组定义和使用方法。目前一百一十一页\总数五百三十三页\编于十七点6.2.1创建动态数组声明动态数组和普通数组基本相同。根据不同关键字定义不同作用域范围。为数组赋予一个空维数表,将该数组声明为动态数组。Public|Private|Static|Dimarr()ReDim[Preserve]varname(subscripts)[Astype]目前一百一十二页\总数五百三十三页\编于十七点6.2.2使用动态数组动态数组使用ReDim关键字。每次使用ReDim关键字,以前数组内容全部自动清空。‘声明数组Dimarray_m()‘动态声明数组为二维数组ReDimarray_m(3,3)Fori=1To3Forj=1To3‘计算表达式array_m(i,j)=i*jPrint"动态数组乘积为:"&array_m(i,j)NextjNexti目前一百一十三页\总数五百三十三页\编于十七点6.3本章实例本章实例创建声明数组、多维数组、动态数组,说明如何计算数组最大值、二维数组运算表达式数值、动态数组运算结果。【实例6-1】计算数组最大值。
图6.3运行窗体目前一百一十四页\总数五百三十三页\编于十七点6.4常见问题及解答1.数组num(9)中共计9个数字是否正确?2.动态数组可以在程序运行时改变数组大小,是否可以将数组全部声明为动态数组?3.可以在声明动态数组时保存以前动态数组内容?目前一百一十五页\总数五百三十三页\编于十七点6.5小结本章主要介绍了固定数组、动态数组的创建、使用方法。并结合实例演示如何创建固定数组和动态数组。本章重点难点包括:如何正确声明和使用动态数组。动态数组在编程开发中使用方法复杂,需要结合实例多分析和实践。目前一百一十六页\总数五百三十三页\编于十七点第7章错误处理现在的Windows应用程序都非常庞大和复杂,不可避免将出现一些错误。当事情出现错误时应用程序如何响应是用户程序设计非常重要的一部分。一个功能完善的应用程序应该预料到错误可能出现并及时处理或提示用户。VisualBasic不仅提供了功能强大的程序设计环境,也提供了一个界面友好、简便实用的程序调试工具。本章内容包括:错误概述。错误捕获和处理。调试程序。目前一百一十七页\总数五百三十三页\编于十七点7.1错误概述错误在应用程序开发和运行过程中表现多样。错误通常包括语法错误、运行错误、逻辑错误三种。本节将分别介绍三种错误不同的表现形式和处理方法。目前一百一十八页\总数五百三十三页\编于十七点7.1.1语法错误语法错误是初学编程者最常见的错误。通常是输入不正确的代码,包括错误地输入关键字、遗忘了标点符号或引用不正确的数据结构。具有语法错误的程序不能正常运行,也不能编译成可执行文件。通常VisualBasic中包含“自动语法检测”选项,可以发现大部分语法错误并提示改正。目前一百一十九页\总数五百三十三页\编于十七点7.1.2逻辑错误如果代码没有语法错误可以运行,但是运行结果与设计时完全不同。这样的代码中必然存在逻辑错误,如语法错误(陷入死循环)、符号错误(加法改为减法)、数值范围错误(设计数值为1至100,运行时为1至99)等。程序逻辑错误是最不容易发现的严重错误。大部分逻辑错误可以归结为数据错误、流程控制错误。DimnAsInteger ‘声明变量DimsAsIntegerN=1Forn=1To3 ‘for循环3次s=s+n ‘运算表达式Nextn目前一百二十页\总数五百三十三页\编于十七点7.1.3运行错误运行错误是在程序运行过程中发生的。有时语法没有错误,但VisualBasic中却无法运行程序。例如,除法运算中,除数为0;读取文件时,该文件不存在等。当出现运行错误时,VisualBasic会自动终止应用程序,并弹出错误信息提示。目前一百二十一页\总数五百三十三页\编于十七点7.2错误捕获处理优秀的应用程序应该具备较强的捕获和处理运行错误的能力。硬件问题或用户错误操作都将引发错误并终止应用程序。错误捕获功能可以拦截错误并进行处理,进而可以避免硬件问题或用户操作错误。本节将介绍错误捕获和处理方法。目前一百二十二页\总数五百三十三页\编于十七点7.2.1错误捕获VisualBasic中使用OnError语句来进行错误捕获,当错误发生,程序自动运行到处理错误的相关代码,予以解决错误或提示用户可能需要的帮助。标准代码如下:OnErrorGoToline发生错误时,跳转到指定处理错误程序代码。OnErrorResumeNext发生错误时,忽略错误行,继续执行下一语句。OnErrorGoTo0发生错误时,不使用错误处理程序代码。目前一百二十三页\总数五百三十三页\编于十七点7.2.2错误处理在理想程序中,VisualBasic过程根本不需要错误处理代码。但实际上硬件问题或用户操作都会造成运行时错误。没有错误捕获和处理的程序中,只能选择终止程序。但是优秀的应用程序应该按以下方式处理错误:(1)错误发生时,提示用户出错并退出子过程,程序有限的功能继续运行。(2)跳过错误语句,继续执行下一句。(3)继续尝试纠正错误并重新运行该语句。目前一百二十四页\总数五百三十三页\编于十七点7.3调试程序VisualBasic集成开发环境可以分为三种模式:设计模式、执行模式、中断模式。设计模式下可以进行程序的界面设计和代码编写。执行模式运行程序,可以查阅代码,不允许更改程序。中断模式下程序处于挂起状态,可以阅读和修改代码并进行调试程序。目前一百二十五页\总数五百三十三页\编于十七点7.3.1单步调试单步调试包括三种调试方法:(1)逐语句:单步调试当前过程和调用过程中代码。快捷键为F8。(2)逐过程:单步调试当前过程中的代码,不调试程序中其他代码。快捷键为Shift+F8。(3)跳出:一直运行到当前过程的结束。快捷键为Ctrl+Shift+F8。目前一百二十六页\总数五百三十三页\编于十七点7.3.2立即窗体VisualBasic在开发中断点模式还提供了“立即”窗体显示运行结果。“立即”窗体允许中断模式下输入代码立即执行和显示运行结果。要显示“立即”窗体,要保证在中断模式下,单击“视图”|“立即窗体”命令或按键Ctrl+G。目前一百二十七页\总数五百三十三页\编于十七点7.3.3监视窗体VisualBasic开发过程中,需要时刻观察运行时程序变量值。当程序处于中断模式下,可以将鼠标指向代码窗体的变量悬停,将自动提示该变量值。如果为多个变量还可以通过监视窗体方法来观察变量值。目前一百二十八页\总数五百三十三页\编于十七点7.4本章实例本章实例包括捕获图片文件不存在错误、单步调试程序。【实例7-1】程序处理不存在图片文件错误。目前一百二十九页\总数五百三十三页\编于十七点7.5常见问题及解答1.如何让VisualBasic自动检测语法错误?2.如何在程序中避免死循环?3.既然OnErrorResumeNext语句可以忽略错误行,目前一百三十页\总数五百三十三页\编于十七点7.6小结本章主要介绍了错误的类型、捕获和处理错误以及如何调试程序。本章重点难点包括:错误捕获处理。程序运行时会产生不同类型异常错误,需要读者结合不同具体情况具体分析和解决。下一章将介绍窗体的特性和创建方法。目前一百三十一页\总数五百三十三页\编于十七点第8章窗体窗体是VisualBasic开发应用程序中最重要控件之一。用户通过窗体及其所见控件与应用程序进行交互操作。窗体包括单文档窗体(SDI窗体)和多文档窗体(MDI窗体)。本章内容包括:单文档窗体。多文档窗体。目前一百三十二页\总数五百三十三页\编于十七点8.1SDI窗体窗体是应用程序界面的其他控件的最主要容器。窗体作为最直接交互界面,包含很多属性、方法、事件。本节将介绍单文档窗体(SDI窗体)的设计和使用。目前一百三十三页\总数五百三十三页\编于十七点8.1.1SDI窗体简介启动VisualBasic应用程序后,会显示一个默认的VisualBasic工程。一般包括一个标准窗体,其界面组成如图8.1所示。包括标题栏、标题、最小化按钮、最大化按钮、关闭按钮等。目前一百三十四页\总数五百三十三页\编于十七点8.1.2公共属性VisualBasic中所有对象属性都不尽相同。但是部分属性是许多对象共有。1.Caption属性2.Font属性3.Backcolor和Forecolor属性4.Icon属性5.Windowstate属性6.Borderstyle属性Object.attribute=value目前一百三十五页\总数五百三十三页\编于十七点8.1.3方法方法实际是内置于对象的程序函数。1.Show方法2.Hide方法3.Setfocus方法4.Refresh方法Object.action目前一百三十六页\总数五百三十三页\编于十七点8.1.4事件1.Load和Unload事件2.Click和Dblclick3.Activate和DeactivateLoadfrmappUnloadfrmapp目前一百三十七页\总数五百三十三页\编于十七点8.1.5设置启动窗体当程序为惟一窗体时,程序启动并自动执行。该窗体称为“启动窗体”或“启动对象”。当程序运行时,VisualBasic会将启动窗体加载到内存并显示直至程序结束。如果程序包括多个窗体,必须将其中一个设为“启动窗体”或在Main过程中设定。目前一百三十八页\总数五百三十三页\编于十七点8.1.6SDI窗体实例本节创建SDI窗体示例“关于窗体”和窗体属性。“关于窗体”是Windows应用程序中主要窗体,用以声明程序名称、版本、公司名称。目前一百三十九页\总数五百三十三页\编于十七点8.2MDI窗体Windows应用程序中Office系列文件为最典型多文档窗体(MDI窗体)。多文档窗体允许在单个主窗体中包含多个子窗体的应用程序。本节介绍如何创建和使用MDI窗体。目前一百四十页\总数五百三十三页\编于十七点8.2.1MDI窗体简介多文档窗体(MDI窗体)中父窗体是包含子窗体的主要窗体。父窗体位于最外层,包含其内子窗体。其操作如最大化、最小化、关闭将同步操作子窗体。目前一百四十一页\总数五百三十三页\编于十七点8.2.2建立父窗体MDI窗体属性中有两个特别的属性Autoshowchildren和Scrollbars属性。Autoshowchildren属性决定了子窗体在加载时是否自动显示。如果该属性为默认值,子窗体自动显示出来。Scrollbars属性决定了父窗体在运行时是否需要滚动条。当该属性设置为默认值True时,如果子窗体延伸到父窗体外部,滚动条自动显示在父窗体上;设为False时不显示滚动条。目前一百四十二页\总数五百三十三页\编于十七点8.2.3建立子窗体子窗体建立相对简单一些。一个子窗体只需要将MDIchild属性设置为True即成为标准窗体。目前一百四十三页\总数五百三十三页\编于十七点8.2.4MDI窗体实例本节创建包含一个TextBox控件和CommandButton控件的MDI窗体。目前一百四十四页\总数五百三十三页\编于十七点8.3本章实例【实例8-1】使用模板创建一个通用“登录对话框窗体”。
图8.17运行窗体
目前一百四十五页\总数五百三十三页\编于十七点8.4常见问题及解答1.如何在运行时在窗体标题栏上显示程序名称?2.如何更改窗体背景颜色?3.BorderStyle属性中的vbSizable和vbFixedSingle有什么区别?目前一百四十六页\总数五百三十三页\编于十七点8.5小结本章主要介绍了SDI窗体的创建和使用方法、MDI窗体的创建和使用方法。本章重点难点包括:SDI窗体主要属性、如何设定启动窗体。窗体属性非常多,需要熟练掌握各种不同选项。启动窗体决定程序运行步骤。目前一百四十七页\总数五百三十三页\编于十七点第9章菜单和工具栏菜单和工具栏是应用程序最重要的组成部分之一。在Windows环境下,几乎所有应用程序都是通过菜单和工具栏实现操作,为用户提供运行命令的快捷方式。本章包括:菜单栏弹出式菜单工具栏目前一百四十八页\总数五百三十三页\编于十七点9.1菜单栏菜单是用户界面中的重要组成部分。在程序中加入菜单可以便于用户使用。用户对应用文档的许多操作命令都可以从菜单开始。目前一百四十九页\总数五百三十三页\编于十七点9.1.1创建菜单1.菜单模板向导目前一百五十页\总数五百三十三页\编于十七点9.1.1创建菜单2.菜单编辑器目前一百五十一页\总数五百三十三页\编于十七点9.1.2修改菜单在应用程序开发中,开发人员可能需要定制或者修改编辑好的菜单。用“菜单编辑器”可以轻而易举完成修改任务。1.分隔菜单项目前一百五十二页\总数五百三十三页\编于十七点9.1.2修改菜单2.设置访问键和快捷键菜单项快捷键说明文件|新建Ctrl+N新建一个文件文件|打开Ctrl+O打开对话框,用户打开一个文件文件|保存Ctrl+S保存一个文件文件|打印Ctrl+P打印文件编辑|复制Ctrl+C复制编辑|粘贴Ctrl+V粘贴编辑|剪切Ctrl+X剪切目前一百五十三页\总数五百三十三页\编于十七点9.1.3多级菜单技巧:VisualBasic允许菜单层级达到6级,但在实际应用中避免太多层级出现,应限制在2-3级。目前一百五十四页\总数五百三十三页\编于十七点9.1.4编写代码1.编写菜单执行代码2.代码编写菜单属性目前一百五十五页\总数五百三十三页\编于十七点9.1.5菜单栏实例1.标准菜单2.多级菜单目前一百五十六页\总数五百三十三页\编于十七点9.2弹出式菜单弹出式菜单是独立于菜单栏显示在窗体上的浮动菜单。在窗体上显示的项目取决于鼠标右键指针所处位置。通常用于对窗体中特定区域操作或选项进行操作,又被称为上下文菜单,具有使用方便、灵活性较强的特点。目前一百五十七页\总数五百三十三页\编于十七点9.2.1创建弹出式菜单创建弹出式菜单与创建标准菜单方法相同,采用菜单模板或“菜单编辑器”均可以创建弹出式菜单。注意弹出式菜单应隐藏起来,避免显示在菜单栏上。注意:隐藏菜单既可以为弹出式菜单,也可以称为标准菜单栏的一部分。目前一百五十八页\总数五百三十三页\编于十七点9.2.2使用弹出式菜单弹出式菜单建立后,需要在特定条件下使其显示在窗体上。该方法可以应用于窗体任何位置,但是多数情况下响应鼠标单击右键。Object.popupmenumenuName,Flags,X,Y,Boldcommand功能定位常量数值说明指定菜单位置VbPopupMenuLeftAlign0默认。X坐标定义该弹出式菜单的左边界VbPopupMenuCenterAlign4指定X坐标为中心VbPopupMenuRightAlign8X坐标定义该弹出式菜单的右边界定义菜单行为VbPopupMenuLeftButton0单击左键显示弹出式菜单VbPopupMenuRightButton8单击右键显示弹出式菜单目前一百五十九页\总数五百三十三页\编于十七点9.2.3弹出式菜单实例【示例9-13】创建弹出式菜单。目前一百六十页\总数五百三十三页\编于十七点9.3工具栏工具栏(Toolbox)通常包含对应应用程序菜单命令的按钮,进一步便捷应用程序命令的使用。工具栏采用图标按钮形式来显示相应的功能。本小节将介绍如何创建工具栏以及编写程序响应工具栏事件。目前一百六十一页\总数五百三十三页\编于十七点9.3.1工具栏简介工具栏通常包含一些带有图标的按钮,通常与菜单命令相对应,提供了快速访问应用程序常用功能的简便方法。目前一百六十二页\总数五百三十三页\编于十七点9.3.2创建工具栏创建工具栏需要多个控件:工具栏控件(Toolbox控件)和ImageList控件。ImageList控件包括其他控件需要使用的图片集(详见9.3.3小节添加图标)。目前一百六十三页\总数五百三十三页\编于十七点9.3.3添加图标工具栏控件添加到窗体后,需要将要显示在工具栏上的图像添加到“图像列表”ImageList控件中。目前一百六十四页\总数五百三十三页\编于十七点9.3.4添加按钮工具栏控件中添加按钮要在“工具栏”|“按钮”选项卡中设置,包括“插入按钮”、“删除按钮”两个按钮和“标题”、“关键字”、“样式”、“图像”等几个属性。目前一百六十五页\总数五百三十三页\编于十七点9.3.5编写代码通过以上小节所述步骤,已经创建一个完整“工具栏”框架。必须为其添加代码执行功能。通过“工具栏”自身ButtonClick事件可以为其编写代码。通过“关键字”属性来判断按钮是否被单击。(1)双击窗体上的“工具栏”控件,弹出代码编辑窗口。(2)选择对象为“toolbar1”,过程为“buttonClick”。输入需要运行代码。(3)关闭代码编辑窗口。至此编写代码结束。目前一百六十六页\总数五百三十三页\编于十七点9.3.6自定义工具栏工具栏控件允许用户按照自己的喜好定制工具栏。用户定制工具栏必须设置Allowcustomize属性为True,用户可以双击工具栏访问自定义工具栏对话框。目前一百六十七页\总数五百三十三页\编于十七点9.3.7工具栏实例【示例9-17】综合以上所述方法创建一个窗体实例,包括一个标准菜单和标准工具栏。目前一百六十八页\总数五百三十三页\编于十七点9.4本章实例本章实例包括创建标准菜单、弹出式菜单、工具栏三项内容,并编写运行代码控制菜单和工具栏显示。【实例9-1】使用“菜单编辑器”创建一个标准菜单、工具栏、弹出式菜单。
图9.22运行窗体目前一百六十九页\总数五百三十三页\编于十七点9.5常见问题及解答1.设计菜单有没有简单快捷的方法?2.可以自由设置自定义快捷键?3.VisualBasic中是否包含工具栏中常用图标?目前一百七十页\总数五百三十三页\编于十七点9.6小结本章介绍了菜单栏、弹出式菜单、工具栏的创建方法,以及如何编程实现运行代码功能。本章重点难点包括:如何为菜单、工具栏编写代码。VisualBasic程序中菜单和工具栏是实现程序功能的重要组成部分,为菜单和工具栏编写代码需要结合实例多分析实践。目前一百七十一页\总数五百三十三页\编于十七点第10章信息对话框信息对话框用来显示或者接受信息的窗体。常见的信息对话框包括显示信息和接受信息窗体。信息对话框一般模式化显示,用户必须选择或输入信息方可继续运行程序。本章内容主要包括:显示信息对话框输入信息对话框内置信息对话框自定义对话框目前一百七十二页\总数五百三十三页\编于十七点10.1信息对话框简介VisualBasic开发应用程序中重要组成部分是为用户显示信息和接受信息。信息对话框将提供显示信息窗体和接受信息窗体。信息对话框是VisualBasic中内置标准对话框,使用方法与函数和过程类似。Msgbox“一个显示信息对话框”目前一百七十三页\总数五百三十三页\编于十七点10.2显示信息显示信息主要使用Msgbox函数。本节介绍Msgbox函数的用法。目前一百七十四页\总数五百三十三页\编于十七点10.2.1使用Msgbox函数Msgbox函数在对话框中显示消息,等待用户单击按钮,并返回一个整数值Integer告诉程序用户所选择按钮。Msgbox(Prompt[,Buttons][,Title][,Helpfile,ConText])目前一百七十五页\总数五百三十三页\编于十七点10.2.2从Msgbox函数返回值Msgbox函数最重要作用是接受用户选择结果,将返回值赋予程序继续运行。带有返回值的Msgbox函数与无返回值相比,参数必须用括号括起来。常数值描述vbOK1OK确认信息vbCancel2Cancel取消vbAbort3Abort终止vbRetry4Retry重试vbIgnore5Ignore忽略vbYes6Yes是vbNo7No否目前一百七十六页\总数五百三十三页\编于十七点10.2.3Msgbox函数实例Msgbox函数在VisualBasic应用程序中是非常重要的信息函数。【示例10-4】窗体只包含一个CommandButton控件,设置其Caption属性为“退出”。当单击该按钮时,调用Msgbox函数询问用户是否退出,如果用户选择“是”按钮,退出程序;否则,显示“程序继续运行”。IfMsgbox(smsg,vbYesNo+vbQuestion,"退出提示")=vbYesThenEnd ‘结束程序ElseMsgbox"程序继续运行" ‘显示信息EndIf目前一百七十七页\总数五百三十三页\编于十七点10.3输入信息在VisualBasic中使用InputBox函数显示提示信息,等待用户输入文本信息或按下按钮,返回包含文本框内容的字符串。目前一百七十八页\总数五百三十三页\编于十七点10.3.1使用Inputbox函数使用Msgbox
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 食品工艺学-第一章-绪论
- 2024专项房地产代购协议范本
- 2024工程招投标协议管理实训解析
- 安全法律法规清单
- 2024年度三方服务销售业务协议范本
- 2024年度综合咨询业务协议
- 2024年度合板销售与购买协议
- 2024年水电安装工程劳务协议细化
- 2024年货物运输保障协议样本
- 2024年招聘流程合规协议书范例
- 妇科子宫肌瘤一病一品优质护理汇报
- 细胞因子风暴应急预案
- 食物频率法问卷调查(FFQ)
- 上海市浦东新区2023-2024学年五年级上学期期中数学试卷
- 大学军事理论课教程第四章现代战争第一节 战争概述
- 我国煤炭转型调研报告
- 产品合格证出厂合格证A4打印模板
- (通用)国家电网考试历年真题库(附答案)
- 学浪入驻教师合作协议范本
- 外脚手架拆除安全技术交底3篇
- 龙头股战法完整
评论
0/150
提交评论