关闭

关闭

关闭

封号提示

内容

首页 vb金文教程整理版.doc

vb金文教程整理版.doc

vb金文教程整理版.doc

上传者: 固执凌乱 2017-10-13 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《vb金文教程整理版doc》,可适用于综合领域,主题内容包含vb金文教程整理版年月日窗体常用属性:Autoredraw:再窗体最小化还原时是否刷新以前的数据Backcolor:窗体颜色设置Borderstyl符等。

vb金文教程整理版年月日窗体常用属性:Autoredraw:再窗体最小化还原时是否刷新以前的数据Backcolor:窗体颜色设置Borderstyle:窗体边框样式共五种(使用默认即可)*Caption:修改标题Controlbox:设置窗体是否显示菜单栏(那三个控制图标)Enabled:控件是否激活取值为True是用户可操作控件为False是不可操作Font:字体设置用于设置在窗口上输出的字体Forecolor:用于设置窗口输出字体的颜色Height:用于设置窗体控件的高度Left:用于设置窗体或空间距离左边缘的距离*Maxbutton:用来设置窗体是否有最大化按钮*Minbutton:用来设置窗体是否有最小化按钮Top:用来设置窗体控件距离顶边的距离*Visisle:用来设置窗体或控件的可见性Windowstate:窗口运行时的状态(普通、最小化、最大化)窗口事件:*Click(单击事件)*Dblclick(双击事件)*Load(装入事件程序运行自动运行的事件)Unload(卸载事件关闭窗口运行的事件)Activate(活动事件)Deactivate(非活动事件)Paint(绘画)事件(当窗体移动或放大时覆盖了一个窗体所出发的)控件分类:标准控件(内部控件):不能添加不能删除ActiveX控件:不常用可插入对象:能添加工具箱的控件不常用标准控件:pointer指针(这不是一个控件只有在选择pointer后猜能改变窗体中控件的位置和大小)picturebox图片框(用于显示图片包括图片或文本vb把他们看成是图形可以装入位图(bitmap)图标(icon)以及vmfjpggif等各种图形格式的文件或作为其他控件的容器(父控件)label标签(可以显示(输出)文本信息但不能输入文本)extbox文本框(可输入文本的显示区域既可输入也可输出文本并可对文本进行编辑)frame框架(组合相关的对象将性质相同的控件集中在一起)commandbutton命令按钮(用于像vb应用程序发出指令当单击此按钮时可执行指定的操作)checkbox复选框(又称检查框用于多重选择)optionbutton单选按钮(又称录音机按钮用于表示单项的开关状态)combobox组合框(为用户提供对列表的选择或者允许用户在附加框内输入选择项它把textbox(文本框)和listbox(列表框)组合在一r计时器(在给定的时刻触发某一事件)drivelistbox驱动器列表框(显示当前系统中的驱动器列表)dirlistbox目录列表框(显示当前驱动器磁盘上的目录)filelistbox文件列表框(显示当前目录中文件的列表)shape形状(在面体中绘制矩形、园等几何图像)line直线(在窗体中画直线)image图像框(显示一个位图式图像可作为背景或装饰的图像元素)data数据(用来访问数据库)OLEcontainerOLE容器(用于对象的连接与嵌入)控件值:可以在代码中省略事件直接用name进行赋值Vb部分控件的控件值Checkbox(复选框Value)Combobox(组合框Text)Commonbutton(命令按钮Value)Commondialog(通用对话框Action)Dbcombo(数据约束组合框Text)Data(数据Caption)Dbgrid(数据约束网格Text)Dblist(数据约束列表框Text)Dirlisbox(目录列表框Path)Drivelistbox(驱动器列表框Drive)Filelistbox(文件列表框Filename)Frame(框架Caption)Rscrollbar(水平滚动条Value)Image(图像框Picture)Labal(标签Caption)Line(直线Visible)Listbox(列表框Text)Optiongbutton(单选按钮Value)Picturebox(图片框Picture)Shape(形状Shape)Textbox(文本框Text)Timer(计时器Enabled)Vscrollbar(垂直滚动条value)控件画法:双击控件按住ctrl单击可连续画多个控件鼠标拖拽年月日语句:分行符:(:)Print"abc"Print"csd"与Print"abc":Print"csd"效果一样续行符:()注意下划线前边有空格且续行符后边不能加注释Print“abc”数据类型:基本类型:字符串(string):不能超过个字节数值:整型数:整数(integer):两个字节取值范围:长整数(long):四个字节取值范围:浮点数(指小数):单精度(single):四个字节用“E”表示。例:E=*双精度(double):八个字节用(D)表示。例:D=*货币(currency):精确到小数点后四位变体(variant):包括任何值字节(byte)布尔(boolean):两种值真或假日期(date)用户定义数据类型:(关键字type)格式:Type数据类型名素名AS类型名Endtype注意声明需要在窗体的通用处进行声明枚举类型:(关键字enum)用于窗体模块标准模块格式:Public、privateenum成员名=表达式EndenumPublie全局使用(公用)Private局部使用(私用)表达式可省略默认类型说明符:整型长整型~单精度浮点型#双精度浮点型货币型$字符串型变量:命名规则:、名字只能用字母数字下划线组成、名字第一个字符必须是字母、名字有效字符个Dim定义变量:PrivateSubCommandClick()DimstAsStringDimstAsString**表示取st的前五个值st=""st=""Printst,stEndSubstatic定义变量:相当于易语言中的静态变量可以记住原来的值)注:静态变量不可以在通用中声明只能在局部事件中进行声明。Deftype声明:Type是类型标志可以是int(整型)、lng(长整型)、sng(单精度型)、dbl(双精度型)、cur(货币型)、str(字符串型)、byte(字节型)、bool(布尔型)、date(日期型)、obj(对象型)、var(变体型)、注意:在一般情况下记录类型应在标准模块中定义如果在窗体模块中定义则必须在“type”关键字前面加上“private(私有)“年月日变量的作用域:全局变量:应用于整个程序。只能在标准模块中声明。用public声明局部变量:仅在某个过程中使用。在使用的过程中进行声明。可以用dimprivate声明模块变量(窗体变量标准模块变量):应用于窗体模块或标准模块。只能在标准模块模块中声明。只能用public声明。常用函数:转换Int(x)求不大于自变量x的最大数函数Fix(x)去掉一个浮点数的小数部分保留其整数部分Hex(x)把一个十进制数转换成一个十六进制数Oct(x)把一个十进制数转换成一个八进制数Asc(x)返回字符串当中第一个字符的ASCII码Chr(x)把x的值转换成相对应的ASCII码对应的字符Str(x)把x的值转换为一个字符串Cint(X)把X的小数部分四舍五入转换为一个整数Ccor(x)把x的值转换为货币类型小数部分最多保留位且制动四舍五入Cdbl(x)把x的值转换为双精度Clng(x)把x的值的小数部分四舍五入转换为长整型数Csng(x)把x的值转换为单精度Val(x)把x的字符转换为数值数学Sin(x)返回自变量x的正弦值函数Cos(x)返回自变量x的余弦值后边要加(x*)Tan(x)返回自变量x的正切值Atn(x)返回自变量x的反正切值Abs(x)返回自变量x的绝对值Sgn(x)返回自变量x的符号测试X的值是否为正数还是负数或零()当x为负数时返回()当x为时返回()当x为正数时返回Sqr(x)返回自变量x的平方根(X必须大于或等于)Exp(x)返回以e为底以x为指数的值即求e的x次方日期Day(now)返回当前的日期WeekDay(Now)返回当前的星期Month(Now)返回当前的月份Year(Now)返回当前的年份Hour(Now)返回小时(~)Minute(Now)返回分(~)Second(Now)返回秒(~)随机函数Rnd(x)产生一个~之间的单精度随机数Vb字符处理机制:一个西文字符用一个字节进行编码中文字符则采用两个字节进行编码一个西文字符的存储要占用一个字节的控件而一个中文字符则要占用两个字节。这种处理机制通常称为ASCI方式。其方式代码通常称为ASCII码一个中文字符相当于由两个ASCII字符构成。把西文字符和中文字符作为一个整体进行统一编码每个字符均用两个字符进行编码通常把这种处理方案称为“Unicode方式”(统一编码方式)。在这种机制下一个英文字符或一个汉子都看作一个字符所占用的存储空间均为两个字节。不同机制间的转换用strconv函数转化格式:新字符串=strconv(代转换字符串转换格式)将ASCII字符串转换成unicode格式用vbnuicode(值为)将unicode格式转换为ASCII格式用vbformunicode。字符串函数:删除空白函数:)Ltrim$(字符串):去掉字符串左边的空白字符)Rtrim$(字符串):去掉字符串右边的空白字符)Trim$(字符串):去掉字符串左右边的空白字符字符串的截取函数:)left$(字符串n):返回“字符串”的前n个字符)mid$(字符串mn)返回“字符串”从第m个字符起后面n个字符)right$(字符串n)返回“字符串”后面n个字符字符串长度测试函数:格式:len(字符串)Len(变量名)作用:len函数可以测试字符串的长度也可以测试变量的存储空间String函数格式:string(nASCII码)String(n字符串)作用:返回由n个指定字符组成的字符串第二个变量可以是ASCII码也可以是字符串当为ASCII码时返回由该ASCII码对应的n个字符当为字符串时返回由该字符串第一个字符组成的n个字符的字符串空格函数:格式:space(n)作用:返回n个空格字符串匹配函数:格式:instr(首字符位置(开始查找的位置)字符串字符串n)作用:该函数在“字符串”中查找“字符串”如果找到了则返回“字符串”的第一个字符在“字符串”中的位置。“字符串”的第一个字符位置为。当n为时区分大小写n为时不区分大小写。字母大小写转换格式:ucase(字符串)Lcase(字符串)作用:ucase函数把“字符串”中的小写字母转换为大写字母Lcase函数把“字符串”中的大写字母转换为小写字母插入字符串语句格式:mid(字符串位置,L)=子字符串(需要替换的字符串)作用:该语句从“字符串”的“位置”开始的字符用“子字符串代替。如果含有L自变量则替换的内容是“子字符串”左部的L个字符。“位置”和L均为长整型数。运算符与表达式运算运算符表达式例子幂^X^Y取负X乘法*X*Y浮点除法XY优先级整数除法XY取模(取余)ModXmodY加法XY减法XY连接XY关系运算符:(关系运算符的返回值只能是Boolean值,即True或False)运算符测试关系表达式例子=相等X=Y<>或><不相等X<>Y或X><Y<小于X<Y>大于X>Y<=小于或等于X<=Y>=大于或等于X>=Y逻辑运算符:()Not(非):由真变假或由假变真,进行取反运算()And(与):乘除法对二个关系式的值进行比较,如果二个表达式的值均为True,结果才为True,否则为False()Or(或):加减法对二个表达式进行比较,其中一个为True,结果就为True,只有二个表达式的结果均为False时,才为False()Xor(异或)如果二个表达式同时为True或同时为False,则结果为False,否则,结果为True()Eqr(等价)如果二个表达式同时为True或同时为False,是结果为True()Imp(蕴含)当第一个表达式为True,且第二个表达式为False时,结果为False,也就是其它情况下,都为True表达式的执行顺序:首先进行函数运算接着进行算术运算,其次序为:幂取负乘浮点除整除取模加减连接然后进行关系运算最后进行逻辑运算,顺序为Notandorxoreqrimp上述操作有一个例外,就是当幂和负号相连时,负民优先在书写表达式时,应注意以下几点()乘号不能省略,也不能用””代替()在一般情况下,不允许有二个运算符相连,应当用括号隔开()括号可以改变运算顺序,在表达式中只能使用圆括号,不能使用方括号或花括号()幂运算表示自乘年月日数据的输出:Print方法:格式:Print表达式,表达式可连续输出多个数据用,隔开与Print相关的函数:Tab函数()格式:Tab(n)()说明,Tab函数把光标移动到由参数N指定的位置,从这个位置开始输出信息,国输出的内容放在Tab函数后面,用分号隔开格式:PrintTab(n)”字符串”spc函数格式:Spc(n)说明:在Print的输出中,用spc函数可以跳过几个空格,也就是在输出的二个字符串,相隔多少个空格格式:Print“字符串”Spc(n)”字符串”(N是之间的整数)空格函数SpaceSpace函数与Spc函数的区别,就是Space函数可以用””连接,而Spc函数不可以格式输出:用格式输出函数,Format$可以使数值或日期按指定的格式输出,一般格式为:Format$(数值表达式,”格式字符串”)该函数的功能是:按”格式字符串”指定的格式输出”数值表达式”的值,如果省略”格式字符串”则Format$函数的功能与Str$函数基本相同,唯一的差别是,当把正数转成字第符串时,Str函数在字符串前面留有一个空格,而Format函数不留空格字符作用#数字:不在前面或后面补数字:前面或后面补小数点’千位分隔符(整数部分每三位一个分割)百分比符号$美元符号(原样输出$符号)正负号EE指数符号,二个作用一样“#”意思在数字的位数不足于设置的位数时,在输出时”#”不补零,而””的后面或前面补””,而在数字的位数多于设置时,则会省略多余的例:PrintFormat(,”###,####”)输出为:,当#为时,输出:其他方法和属性:Cls方法:格式:对象Cls作用:Cls清除由Print方法显示的文本或图片框中显示的图形,并把光标移动对象的左上角(),这里的对象可以是窗体或图片框,如果省略对象,则清除当前窗体内显示的内容Move方法格式:对象Move左边距离,上边距离,高度,宽度作用Move方法用来移动窗体或控件,并可以改变其大小,其中”对象”可是是窗体及除计时器,菜单外的所有控件,如果省略”对象”表示要移动的是窗体Textheight与textwidth格式:Textheight(字符串)Textwidth(字符串)输出当前字符串的长度和宽度数据的输入:为了输入数据,VB提供了Inputbox函数,Inputbox函数可以产生一个对话框,这个对话框作为输入数据的界面,等待用户输入数据,并返回所输出的内容其格式为:Inputbox(Pronp,title,default,xpos,ypos,helpFile,comtext)注释:Pronp:提示内容Title:标题Default:文本框的默认值Xpos:距屏幕左边的距离Ypos:距屏幕上边的距离输入函数的注意事项:在默认情况下,Inputbox函数的返回值是一个字符串,也就是说,如果没有事先声明返回变量的类型,则当把该函数的返回值赋给这个变量时,VB总是把它作为字符串来处理如果在Inputbox函数时,弹出对话框后点”取消”按钮,则使当前的输入作废,在这种情况下,将返回一个空字符串每执一次Inputbox函数,只能输入一个值,如果输入多个值,则必须多次调用Inputbox函数Msgbox函数和msgbox语句:Msgbox函数格式:Msgbox(Msg,type,title,helpfile,contextMsg:需要提示的内容Title:显示消息框标题Type:选择不同的图标选择不同按钮为默认按钮选择不同的按钮祥见下表常数值描述vbOKOnly只显示“确定(ok)”按钮。VbOKCancel显示“确定(ok)”及“取消(cancel)”按钮。VbAbortRetryIgnore显示“终止(abort)”、“重试(retry)”及“忽略(ignore)”按钮。VbYesNoCancel显示“是(yes)”、“否(no)”及“取消(cancel)”按钮。VbYesNo显示“是(yes)”及“否(no)“按钮。VbRetryCancel显示“重试(retry)”及“取消(cancel)”按钮。VbCritical显示CriticalMessage图标。(X)VbQuestion显示WarningQuery图标。(,)VbExclamation显示WarningMessage图标。(~)VbInformation显示InformationMessage图标。(I)vbDefaultButton第一个按钮是缺省值。vbDefaultButton第二个按钮是缺省值。vbDefaultButton第三个按钮是缺省值。vbDefaultButton第四个按钮是缺省值。Msgbox返回值:常数值描述vbOKOK(选“确定”按钮)vbCancelCancel(选“取消”按钮)vbAbortAbort(选“终止”按钮)vbRetryRetry(选“重试”按钮)vbIgnoreIgnore(选“忽略”按钮)vbYesYes(选“是”按钮)vbNoNo(选“否”按钮)msgbox语句:msgbox函数格式相同不同处是msgbox语句没有返回值~年月日常用标准控件:文本控件:文本控件分为标签与文本框文本框可输入输出内容标签只可输出。标签常用属性:alianment:–靠左显示–靠右显示–居中显示autosiz:根据标签内的字符串大小自动调整标签大小(默认假)caption:标题修改显示文本backstle:–标签透明–标签不透明默认wordwrap:设置标签是否分行必须先设置autosiz为真文本常用属性:maxlength:用来设置文本框输入字符的最大值默认为multiline:设置文本框是否可以分行输入passworrdchar:文本框显示方式(例如输入*则该文本框能容全用*代替)scrollbars:设置文本框有无为滚动条–没有滚动条只有水平滚动–只有垂直滚动–同时有水平垂直滚动条注:multiline属性为真时才可所设置该项~text:设置文本框中显示的内容locked:用来设置文本框是否可以被编辑文本框的事件和方法:change:更改事件当用户修改文本框内容时触发该事件。gofocus:获得焦点时触发的事件lostfocus:失去焦点时触发的事件setfocus:获得焦点的方法图形控件:图片框和图像框:图片框较为灵活适用于动态环境图像框适用于静态环境Picture属性:设置对象显示的图像(bitmapiconjpeg格式)Autosize属性:自动调节边框大小适应图片大小(图片框)Stretch属性:图片调节边框大小适应边框大小(图像框)(下边透明的)图片框与图像框区别:图片框和图象框的用法基本相同但有以下区别:图片框是容器控件在图片框中可以包含其它控件而其它控件不能“属于”一个图象框图片框可以通过Print方法接收文件而图象框不能接收用Print方法输入的信息每个图片框都有一个内部光标(不显示)用来指示一下个将被绘制点的位置这个位置就是当前光标的坐标通过CurrentX和CurrentY属性来记录图象框比图片框占用的内存少显示速度快图象框是图片的大小来适应图象框而图片框是图片框来适应图在设计阶段装入图形文件(允许把一个图片赋给另一个控件)用属性窗口的Picture属性装入在运行期间装入图形文件格式为:对象Picture=LoadPicture(“文件名”)“文件名”指:“图片路径(完整路径)”以及“图片名扩展名”。“空串”清空图片直线和形状的属性直线和形状具有Name和Visible属性形状还具有Height,Left,Top,Width等标准属性直线具有XY和X,Y。分别表示直线两个端点的坐标。即(X。Y)和(X。Y)此外直线和形状还具有以下属性)BorderColor:该属性用来设置形状和直线的颜色)Borderstyle(默认值为:):该属性用来确定直线或形状的边界线的线型可以取以下七种值:透明实线虚线点线点划线双点划线内实线。当该属性值为时控件实际上是不可见的)BorderWidth:该属性用来指定直线的宽度或形状边界线的宽度该属性不能设置为默认以像素为单位)Backstyle:该属性用于形状控件其设置为或用来决定形状是否补指定的颜色填充(设置图形是否透明)边界透明边界用指定颜色填充)FillColor:该属性用来定义形状的内部颜色使用时必须保证FillStyle属性值不为)FillStyle:该属性的设置决定的形状控件内部的填充图案可以取以能下种值:实心透明水平线垂直线向上对角线向下对角线交叉线对角线)Shape:该属性用来确定所画形状的几何特性它可以被设置为种值:矩形(默认)正方形椭圆形圆形四角圆化的矩形四角圆化的正方形年月日按钮控件:一、属性和事件:cancel属性:设置为真时按Esc键与单机此按钮效果相同一个窗体只可以一个按钮设置为真default属性:设置为真时按Enter回车按钮与单击此按钮效果相同一个窗体只能有一个按钮设置为真style属性:–标准样式(默认)–图形样式(在按钮中不仅可以显示文本还可显示图片)picture属性:给按钮添加背景图style属性必须为bownpicture属性:按钮被按下时的显示的图片style属性必须为disabpicture属性:按钮为不可用状态(enabled状态)显示的图片style属性必须为复选框与单选按钮:value属性:用来表示复选框和单选框的状态复选框据:没有选择–表示选中–该选择框禁止单选框:当设为真时该单选框为默认选中alignment属性:设置复选框或单选框的标题显示方式:(标题在右–标题在左)Styie:复选框与单选框的显示方式(默认图形方式)该属性只可以在属性窗口设置不可再代码窗口设置【当style设置为时单选框与复选框的外观与按钮相似但不同于按钮】年月日列表框和组合框:列表框:Columns属性:显示方式–默认横向显示通常使用默认值List属性:设置:列表框显示的内容(ctrl回车换行)可以通过下标访问数组中的值(下标值从开始)其格式为:S$=列表框List(下标)Listcount:该属性列出列表框中的有项数量列表框中表项的排列从开始最后一项是的序号为Listcount。(用于测试有多少项)Listindex:设置列表框的选中项。第一项第二项„„„„„„(在代码窗口设置)Multiselect:设置是否可以选择多项(–只能选择一项–可以选择指定范围的多项–选择多项但需要键盘配合)Selected属性:判断当前项是否被选中。Selcount属性:判断列表框中有多少被选中(multiselect必须为或)Sorteds属性:为真时表项按升序摆列Style属性:设置外观(标准模式–复选框模式)Text属性:最后一项选中的文本列表框事件:列表框可接受单击双击事件列表框的方法:Additem:在列表框中插入一行文本格式为:列表框AddItem项目字符串索引值Clear:清除列表框中的所有内容Removeitem:删除列表框中的指定项目格式为:列表框RemoveItem索引值组合框:实质为文本框和列表框的组合Style:–下拉式组合框简单的组合框下拉式列表框Text:输入文本组合框事件:只有style=时才能接受双击事件其他两种可以接受单机事件组合框方法:Additem:在组合框中插入一行文本格式为:组合框AddItem项目字符串索引值Clear:清除组合框中的所有内容Removeitem:删除组合框中的指定项目格式为:组合框RemoveItem索引值年月日滚动条:max:滚动条的最大值Min:滚动条的最小值Largechange:单击滚动条前后时value增加会减小的增量值Smallchange:单击滚动条前后两箭头value增加或见效的增量值Value:表示滚动条的当前位置(滚动框初始位置)滚动条事件:Scroll事件:当拖动滚动条时触发该事件用于跟踪滚动条的动态变化Change事件:改变滚动条内的滚动框的位置触发该事件用于得到滚动条的最后值计时器:所谓时间间隔指计时器事件之间的事件他以毫秒为单位计时器可以使用name、enabled属性。起哦哪个重要属性是interval其间隔时间不能超过秒计时器支持timer事件对于一个含有计时器的空间窗体每经过一段有interval指定的时间间隔就会产生一个timer事件框架:框架是一个容器空间可以使用单击和双击事件。焦点和tab顺序:用下面的方法可以设置一个对象的焦点在运行时单击该对象在运行时用快捷键选择该对象在程序代码中使用SetFocus方法焦点只能移动到可视的或控件上因此只有当一个对象的Enabled和Visible属性均为True时它才能收到焦点并不是所有的控件都可以收到焦点某些控件例如:框架、标签、菜单、直线、形状、图象框和计时器都不能接收焦点可以通过SetFocus方法设置焦点但应注意的是由于在窗体上的Load事件完成前窗体或窗体上的控件是不可见的因此不能直接在FormLoad事件过程中用Setfocus方法把焦点移到正在被装入窗体或窗体上的控件(Tab顺序(可以获得焦点的空间都有一种“TabStop”属性有它可以控制焦点和移动该属性的默认值为True,如果把它设置为False时用Tab移动焦点时会跳过该控件(在设计阶段可以通过属性窗口中的TabIndex属性来改变Tab顺序(在建立控件时对于标签的Caption属性键入时可以在其前面加一个“”“”符号只在属性窗口出现不会在窗体的标签控件上显示出来但它使得该标签的标题的第一个字母下面有一条下划线。(在一组单选按钮中只有一个Tab站即被选中的单选项按钮的TabStop属性自动设为True而其它的单选项按钮的Tabstop被设置为False注:“”的作用就是设置快捷键该控件的快捷键是“Alt有下划线的字母”年月日选择控制结构:分为顺序结构、选择结构、循环结构。选择控制结构:(有两个条件是使用这个)单行结构条件语句单行条件语句其格式如下:IF条件ThenThen部分ElseElse部分如果“条件”为True则执行“Then部分”否则执行“Else部分”块结构语句(多个条件时用这个)一般格式如下:IF条件Then语句块ElseIf条件Then语句块ElseIf条件Then语句块„„Else语句块NEndIf注意:当条件是数值表达式时非零值表示True值表示False,而当条件是关系表达式或逻辑表达式时表示True,表示False块结构与单行结构语句的主要区别就是看Then后面的语句(注释语句除外)是否和Then在同一行上如果在同一行上则为单行结构否则为块结构对块结构必须以EndIf结束单行结构没有EndIf在块结构的条件语句中ElseIf子句的数量没有限制可以根据需要加入任意多个ElseIf子句块结构条件语句中的ElseI子句和Else子句都是可选的如果省略这些子句则块形式的条件语句简化为:If条件Then语句块EndIf在某些情况下可能有多个条件为True但也只能执行一个语句块块形式的条件语句可以嵌套Iif函数:IIf函数的格式如下:Result=IIf(条件True部分False部分)说明:是函数的返回值“Result”“条件”是一个逻辑表达式当“条件”为True时IIF函数返回True部分而当“条件”为False时则返回“False部分”“True部分”和“False部分”可以是表达式变量或其它函数注意:IIF函数中的三个参数都不能省略而且要求“True部分”“False部分”及结果变量的类型一致注:如果“False部分”存在被除的问题则程序会出错(即使条件为True)年月日多分枝结构结构:在VB中多分支控制结构程序通过情况语句来实现情况语句也称为SelectCase语句或Case语句在一组相互独立的语句序列中挑选要执行的语句序列。一般格式为:Selectcase测试表达式Case表达式列表语句块Case表达式列表语句块„„Caseelse语句块NEndSelect说明情况语句的执行过程是:=先对“测试表达式”求值然后测试该值与哪一个Case语句中的“表达式列表”相匹配如果找到了则执行与该Case子句有关的语句块并把控制结构移到到EndSelect后面的语句“表达式列表”注意事项:关键字TO用来指定一个范围在这种情况下必须把比较小的值写在前面字符串常量范围必须按字母顺序写出如果使用关键字IS则只能用关系运算符。注意:当用关键字IS定义条件时只能是简单的条件能使用罗辑运算符将两个或多个简单的条件组合在一起在一个SelectCase语句中种形式可以混用SelectCase语句与IF„„Then„„Else语句块功能类似一般说可以使用块形式条件的地方也可以使用情况语句如果同一个取值的范围在多个Case子句中出现则只执行符合要求的第一个Case子句的语句块在情况语句中Case子句的顺序对执行结果没有影响但应注意的是CaseElse子句必须放在所有的Case子句之后如果在SelectCase结构中的任何一个Case子句都没有与测试表达式相匹配的而且也没有CaseElse子句则不执行任何操作在不同的Case语句中指定的条件和相应的操作不能相互矛盾年月日For循环控制结构:(计数循环)分为:计数循环当循环do循环一(计数循环For格式:For循环变量=初值TO终值Step步长(增长量)循环体ExitForNext循环变量循环变量„„二(说明:(格式中有多个变量这些参数的含义如下:循环变量:也称“循环控制变量”、“控制变量”或“循环计数器”它是一个数值变量但不能是下标变量或记录变量步长不可为。如果步长为则可省略不写格式中的初值终值步长均为数值表达式。但其值不一定是整数可是以实数VB自动调整(For循环语句的执行过程是:首先把“初值”赋给“循环变量”接着检查循环变的值是否超过终值如果超过就停止执行“循环体”跳出循环执行Next后面的语句否则执行一次“循环体”然后把“循环变量步长”的值赋给“循环变量”重复上述过程这里所说的“超过”有两种含义即大于或小于当步长为正值时检查“循环变量”是否大于终值当步长为负值时判断“循环变量”的值是否小于终值(在VB中For„„Next循环遵循“先检查后执行”的原则即先检查循环变量是否超过终值然后决定是否执行循环体因此在下列情况下循环体将不会被执行:当初值等于终值时不管步长是正数还是负数均执行一次循环体(For语句和Next语句必须成对出现不能单独使用且For语句必须在Next语句之前(循环次数由初值、终值和步长个因素确定计算公式为:循环次数=Int(终值初值)步长(For„„next语句可以嵌套使用(在VB中循环控制值不但可以是整数还可以是双精度数和单精度数(循环变量用来控制循环的过程在循环体内可以被引用和赋值当循环变量在循环体内被引用时称为“操作变量”而不被引用的循环变量叫作“形式变量”如果用循环变量作为“操作变量”当循环体内循环变量出现的次数较多的时候会影响程序的清晰性这句话实在不懂先记下来(一般情况下For„„Next正常结束即循环变量达到终值但有些情况下可能需要在循环变量到达终值前退出循环这可以通过ExitFor语句并且可以出现在循环体内的任何位置此外用ExitFor只能退出当前循环即退出它所在的内层循环(For„„Next中的“循环体”是可选项项当该项缺省时For„„next执行“空循环”利用这一特性可以暂停程序的执行当程序暂停时间很短或者对时间没有严格要求时用For„„Next循环来实现暂停是一个好方法不过对不同的计算机暂停的时间也不一样用后面介绍的WhileWend循环和DOLoop循环也可以实现暂停年月日当循环控制结构:VB中当循环的控制结构如下:While条件语句块Wend“条件“为一布尔表达式当循环的功能是:当给定“条件”为True时执行循环体中的“语句块注:一定要加结束语句否则会造成死循环程序卡死例如:PrivateSubCommandClick()i=Whilei<=s=sii=i'要添加步长在while中没有for语句的步长如果不加上会造成程序死循环卡死WendPrintsEndSub如果不加上i=ii的值始终为始终达不到小于等于从而造成死循环当循环与for循环的区别:For循环(计数循环)对循环执行指定的次数当循环则是在给定条件为True时重复一语句序列(循环体)的执行当循环的注意事项:While循环语句先将对条件进行测试然后决定是否执行循环体只有在“条件”为True时才执行循环如果条件开始就不成立则一次循环也不执行如果条件总是成成立则不停的执行循环体开始时对条件进行测试如果成立则执行循环体执行完一次循环体后再测试条件如果成立则继续执行直到条件不成立为止也就是说当条件最初出现False时或以上面某种方式执行循环体使得条件的求值最终出现False时当循环才被终止在正常使用的“当循环”中循环体的执行应当能使条件改变否则会出现死循环这是程序设计中容易出现的严得错误应当尽力避免当循环可以嵌套层数没限制每个Wend和最近的While相匹配年月日Do循环:Do循环个格式:(格式Do语句块EixtDoLoopWhile|Until循环体While循环与DO„„Loopwhile|Until循环的区别:While循环是先判断后执行而DO„„LoopWhile|Until循环是先执行后判断也就是说当条件不成立时DO最少会执行一次循环体Do„„Loopwhile循环逻辑图Do„„LoopUntil循环逻辑图开始开始执行循环体执行循环体开始开始体计算条件的“值”体计算条件的“值”Yesno条件为“真”时条件为“真”时结束结束(格式DoWhile|Until循环体语句块ExitDoLoop这种格式的DoWhile„„与While循环功能一样说明:(Do、Loop及While、Until都是关键字。“语句块”是需要重复执行的一个或多个语句即循环体。“循环条件”是一个逻辑条件(While是条件为True时执行循环而Until则是在条件变为True之前重复(在格式()中While和Until放在循环体的未尾分别叫做Do„LoopWhile和Do„LoopUntil循环(在格式()中While和Until放在循环的开头即紧跟在关键字DO之后组成二循环分别叫做DoWhile„Loop和DOuntil„Loop循环(Dowhile|Until„Loop循环先判断条件然后在条件满足的时才执行循环体否则不执行、(和While循环一样如果条件总是成立Do循环也可能陷入死循环在这种情况下可以用ExitDo语句跳出循环一个DO循环可以有一个或多个ExitDo语句并且ExitDo可以出现在循环体的任意地方不循环到语句时结束循环并把控制转移到Do循环后面的语句用ExitDo语句只能从它所在循环中退出(Do循环可以嵌套其规则与For„Next循环相同多重循环:通常把循环体内不含有循环语句的循环叫单层循环而把循环体内含有循环语句的循环叫多重循环年月日数组:在VB中把一组具有相同名字不同下标的变量称为数组其一般格式如下:S(N)说明:S为数组名N为下标(一般情况下下标从零开始)数组的定义:在VB中可以用四个语句来定义数组这四个语句格式相同但适用范围不同Dim用来在窗体模块中或标准模块中定义窗体或标准模块数组也可用于过程ReDim用在过程中(主要用于定义动态数组)Static用在过程中(主要用于定义静态数组)Public用在标准模块中定义全局数组定义数组的格式:在定义数组时VB提供了两种格式:第一种格式第一种格式与传统的数组定义相同对于数组的每一维只要给出下标的上界即可以使用下标的最大值。对于一维数组格式如下:Dim数组名(下标上界)AS类型名称对于二维数组格式如下:Dim数组名(第一维下标上界第二维下标上界)AS类型名称说明如果省略“AS类型名称”则定义的数组为了Variant(变体)类型数组必须先定义后使用当用Dim语句定义数组时该语句把数值数组中的全部元素都初使化为“”而把字符串数组的全部元素都初使化为“空字符串”一般情况下下标的下界默认为如果希望从开始可以通过OptionBase语句来设置其格式为:OptionBaseNOptionBase语句用来指定数组下标的下界。只能是或OptionBase语句只能出现在窗体层或模块层不能出现在过程中并且必须放在数组定义之前此外如果定义的是多维数组则下标的默认下界对每一维都有效第二种格式:用第一种格式定义的数组其下标的下界只能是或而如晨使用第二种格式则可要据需要指定数组的下界。其格式如下:Dim数组名(下界TO上界下界TO上界„„)AS类型说明下标的范围可以是定义数组时应注意的事项:数组名的命名规则与变量名相同在命名时应尽可能有一定的含义做到“见名知意”(名称的唯一性)在同一过程中数组名不能与变量名相同否则会出错在定义数组时每一维的元素个数必须是常数不能是常量或表达式数组类型通常在AS语句中给出如果省略了AS语句则定义的是默认数组。此外也可以通过类型说明符来指定数组的类型测试数组上界值和下界值的两个函数:LBound(数组名维)(测下界)UBound(数组名维)(测上界)这两个函数分别返回一个数组中指定维的下界与上界其中“数组”是一个数组名“维”是要测试的维LBound函数返回“数组”某一“维”的下界值而UBound函数返回“数组”某一维的上界值年月日静态数组与动态数组:根据内存区开辟时机的不同可以把数组分为静态数组和动态数组通常把需要在编译时开辟内存区的数组叫静态数组而把需要在运行时开辟内存区的数组叫动态数组动态数组的定义动态数组以变量作为下标值在程序运行中完成定义通常分为二步:首先在窗体层、标准模块或过程中用Dim和Public声明一个没有下标的数组(括号不能省略)然后在过程中用ReDim语句定义带下标的数组ReDim语句的格式为:RedimPreserve变量(下标)AS类型该语句用来重新定义动态数组按定义的上下界重新分配存储单元并可为定义的变量改变存储类型当重新分配动态数组时数组中的内容将被清除但如果在ReDim语句中使用了Preserve选择项则不清除数组内容ReDim只能出现在事件过程中用它定义的数组是一个临时数组即在执行数组所在的过程时为数组开辟一定的内存空间当过程结束时这部分内存即被释放说明:在窗体层或模块层定义的动态数组只有类型没有指定维数其维数在ReDim语句中给出最多不能超过维用ReDim语句定义的数组最多可达到维(直接定义才可以达到维)数组的清除和重定义:数组一经定义便在内存中分配了相应的存储空间其大小是能改变的在一个过程中同一个数组只能定义一次有时候可能需要清除数组的内容或对数组重新定义这可以用Erase语句来实现其格式为:Erase数组名数组名„„Erase语句用来重新初使化静态数组成部分元素或者释放动态组的存储空间。(释放动态数组时整体都不存在)说明:当把Erase语句用于静态数组时如果这个数组是数值数组则把数组中所有的元素置为如果是字符串数组则把所有元素置为空字符串当把erase语句放在东放在数组中使用时将删除整个数组结构并释放数组所占的内存也就是说动态数组经过erase后就不存在而静态数组经erase后仍然存在只是内容被清空。当把erase语句用于变体数组时每个元素将被重置为“空”(empty)erase释放动态数组所使用的内存。在下次引用该动态数组之前必须用redim语句进行重新定义该数组变量维数年月日数组的基本操作:数组元素的输入输出和复制:数组的引用:数组的引用通常是指对数组元素的引用在引用数组时应注意以下几点:)在引用数组元素时数组名、类型、和维数必须与定义数组时一致)如果建立的是二维数组或多维数组必须给出二个或多个下标)引用数组元素时其下标值应在建立数组时所指定的范围内(不能越界)数组元素的输入:数组元素一般通过For循环语句及Inputbox函数输入数组元素的输出:数组元素的输出可以用Print方法来实现数组元素的复制:单个数组元素可以像简单变量一样从一个数组复制到另一个数组冒泡排序:二二对比的原理把比较大的一个赋值给变量利用变量跟未对比过的数字进行对比。对于N个数进行排序只要比较N次ForEach„Next语句:ForEach„Next语句类似于For„Next语句两者都用来执行指定重复次数的一组操作但ForEach„Next语句专门用于“数组”或对象“集合”其一般格式为:ForEachelementIngroupstatementsExitForstatementsNextelementelement必要参数。用来遍历集合或数组中所有元素的变量。对于集合来说element可能是一个Variant变量、一个通用对象变量或任何特殊对象变量。对于数组而言element只能是一个Variant变量。group必要参数。对象集合或数组的名称(用户定义类型的数组除外)。数组名后面没有括号statements可选参数针对group中的每一项执行的一条或多条语句。说明(如果集合中至少有一个元素就会进入ForEach块执行。一旦进入循环便先针对group中第一个元素执行循环中的所有语句。如果group中还有其它的元素则会针对它们执行循环中的语句当group中的所有元素都执行完了便会退出循环然后从Next语句之后的语句继续执行。(在循环中可以在任何位置放置任意个ExitFor语句随时退出循环。ExitFor经常在条件判断之后使用例如If…Then并将控制权转移到紧接在Next之后的语句。(可以将一个ForEachNext循环放在另一个之中来组成嵌套式ForEachNext循环。但是每个循环的element必须是唯一的。注意:如果省略Next语句中的element就像element存在时一样执行。如果Next语句在它相对应的For语句之前出现则会产生错误。(不能在ForEachNext语句中使用用户自定义类型数组因为Variant不能包含用户自定义类型。年月日数组的初使化:所谓的数组的初使化就是给数组的各元素赋初值VB提供了Array函数利用该函数可以使数组在程序运行之前初使化得到初值Array函数用来给数组元至少赋初值即把一个数据集导入某个数组其格式为:数组变量名=Array(数组元素值)数组变量不能是具体的数据类型(按普通变量进行定义)只能是变体类型数组变量可以能过以下三种方式定义:显示定义为Variant变量在定义时不指明类型不定义而直接接使用Array函数只适用于一维数组即只对一维数组进行初使化不能对二维或多维数组进行初使化。控件数组:控件数组的基本概念:控件数组是由一组相同类型的控件组成这些控件共用一个相同的控件名字具有同样的属性设置。控件数组的每一个元素都有一个与之相关的联的下标或称索引下标值由Index属性决定在设计阶段可以改变控件数组元素的Index属性但不能在程序运行时改变建立控件数组:建立控件数组的两种方法)复制粘贴)修改Name属性控件数组建立后只要改变一个控件的Name属性并把Index属性设为空(不是)就能把该控件从控件数组中删除年月日过程:建立Sub过程由Sub…endSub定义的子程序叫做子程序过程或Sub过程而把Function…EndFunction定义的函数叫函数过程或Function过程建立Sub过程定义Sub过程通用的Sub过程结构与事件过程类似一般格式如下:StaticPrivatePublicSub过程名(参数列表)语句块ExitSub语句块EndSub说明)Sub过程以Sub开头以EndSub结束在Sub和EndSub之间是描述过程操作的语句块称“过程体”或“子程序体”格式中各参数的含义如下:Static:如果使用了Static则过程中的局部变量就是Static(静态)类型的即在每次调用时局部变量的值保持不变Private表示Sub过程是私有过程Public表示Sub过程是公有过程可用在程序的任何地方调用过程名是一个长度不超过个字符的变量名在同一个模块中同一个变量名不能即用作Sub过程名又用作Function过程名参数列表:含有在调用时传送给该过程的简单变量名或数组名各名字之间用逗号隔开“参数列表”指明了调用时传递给过程的参数的类型和个数每个参数的格式为:Byval变量名()As数据类型这里的“变量名”是一个合法的VB变量名或数组名。如果是数组则要在数组名后面加一对括号如果省略了“AS数据类型”则默认为“Variant”(变体)如果加上“Byval”则表明该参数是传值。没有加“Byval”或者加Byref的参数称为“引用”不能用定长字符串变量或定长字符串数组作为形式参数不过可在调用语句中用简单定长字符串变量作为“实际参数”EndSub标志着Sub过程结束为了能正确运行每个Sub过程都必须有一个EndSub子句当程序执行到EndSub时将退出该过程并立即返回到调用语句下面的语句此外在过程体内可以用一个或多个ExitSub语句从过程中退出Sub过程不能嵌套建立Sub过程可以在标准模块中建立也可以在窗体模块中建立。建立的方法有二种:(手动输入。通过工具菜单里的添加过程添加调用Sub过程调用引起过程的执行也就是说要执行一个代码必须要调用该过程。Sub过程的调用有二种方式一种是把过程的名字放到一个Call语句中一种是过程名作为语句来使用用Call语句调用Sub过程格式:Call过程名(实际参数)用Call语句调用一个过程时如果过程本身没有参数则“实际参数”和括号可以省略否则应给出相应的参数并把参数放在括号中。把过程名作为一个语句来使用在调用Sub过程时如果省略关键字Call就成为调用Sub的第二种方式与第一种相比它有二点不同:。去掉关键字Call。去掉“实际参数”的括号通用过程和事件过程事件过程也是Sub过程但它是一种特殊的Sub过程它附加窗体和控件上一个控件的事件过程由控件的实际名字、下划线和事件名组成而窗体事件过程由“Form”、下划线和事件名组成也就是说窗体的事年过程不能由用户任意定义而系统指定控件事件过程一般格式为:Private|PublicSub控件名事件名(参数表)语句组EndSub窗体事件过程的一般格式为:Private|PublicSubForm事件名(参数表)语句组EndSub可以看出除了名字外控件事件过程和窗体事件过程格式基本上是一样的在在大多数情况下通常是事件过程中调用通用过程实际上由于事件过程也是过程(Sub过程)因此也可以被其它过程调用(包括事件过程和通用过程)通用过程也可以放在标准模块中也可以和在窗体模块中而事件过程只能放在窗体模块中不同模块中的过程(包括事件过程和通用过程)可以相互调用当过程名唯一时可以直接通过过程名调用如果二个或二个以上的标准模块中含有相同的过程名则在调用时必须用模块名限定其一般格式为:模块名过程名(参数表)年月日Function过程:Sub过程它不直接返回值可以作独立的基本语句使用而Function过程要一个返回值通常出常在表达式中。建立Function过程Function过程又称函数过程Function过程定义的格式如下:StaticPrivatePublicFunction过程名(参数列表)AS类型语句块过程名=表达式ExitFunction语句块EndFunction说明)。Function过程以Function开头以EndFunction结束其它参数含义与Sub过程相同)。调用Sub过程相当于执行一个语句而调用一个Function过程要返回一个值因此可以像内部函数一样在表达式中使用。如果在Function过程中省略“过程名=表达式”则该过程返回一个默认值数值函数返回值字符串函数返回空字符串)。Function过程不能嵌套调用Function过程:Function过程的调用可以像VB内部函数一样来调

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/44
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部