Vb复习资料(46页).doc
-Vb复习资料-第 45 页Vb复习提纲Vb的三种工作模式:设计模式;运行模式;中断模式。运行模式中不能编辑代码,不能编辑界面;中断模式中可以编辑代码,不能编辑界面。工程文件包括部分,工程文件扩展名:.vbp窗体模块Form1,form2.frmFunction过程,sub过程,事件过程标准模块Module1,module2.basFunction过程,sub过程类模块Class1,class2.clsVb程序的执行方式:解释方式(便于程序的调试和修改,运行速度较慢);编译方式对象:对象指现实世界中的实体,可以是抽象的也可以是实体的,有自己的特征(属性),行为(方法),活动(事件)的类:对同一种对象的集合与抽象,封装和隐藏是类的重要特性。类包含所创建对象的属性数据,以及对这些数据进行操作的方法。Vb对象的三要素:属性&方法&事件基本属性:name(名称):所有对象都具有的属性,是创建对象的名称Caption:决定了控件上显示的文本内容。(文本框和combo框也有list属性为text属性,list框为list属性Font:改变文本的外观,包括1 Fontname:字体属性,是字符型(” “)2 Fontsize:字体大小,是数字型3 Fontbold:字体加粗,是逻辑型4 Fontitalic:字体斜体,是逻辑型5 Fontstrikethru:加删除线,是逻辑型6 Fontunderline:加下划线,是逻辑型Enable属性:决定控件能不能使用:true:可以使用,对操作做出响应;false:不能操作,呈灰色,对操作无响应。Visible属性:决定控件是否可见:true:程序运行时控件可见;false:程序运行时控件隐藏,用户看不到,但控件本身存在。MouseIcon:鼠标的指针类型,鼠标类型设置值为015,值若为15则是用户自定义鼠标文件。事件:Load:窗体被装入是自动执行,用于对属性值和变量的初始化。Click,DblClick:单击和双击事件,由鼠标单击和双击时候触发事件。方法:Print:用于在窗体或者图形框中显示文本Cls:在窗体或者图形框中清除运行时产生的图形或者文本Move:移动一个窗体或者控件图片的引用loadpicture(App.Path+ ” summer.bmp ” )相对引用,图片和工程文件在一个文件夹中。Loadpicture ( “ D : summer.bmp ” ) 绝对引用,图片在D盘中。在文本框中,汉字、字母、数字都只占一个字符,a=text1.seltext:将选中的内容放入a中。Text1.seltext:=a:将选中的内容插入到光标所在的位置数据类型数据类型关键字类型符占用字节字节型Byte无1逻辑型Boolean无2整型Integer%2长整型Long&4单精度型Single!4双精度型Double#8货币型Currency8日期型Date无8字符型String$与字符长度有关对象型Object无4变体型Variant无根据需要分配整数的表达形式:123,123%,123&,+342,-123,浮点数:又称为实数,分为单精度和双精度浮点数。123.45;123.45!;0.12345E+3;0.12345E+3都是表示同值的单精度浮点数;123.45;123.45#;0.12345D+3;0.12345E+3#都是表示同值的双精度浮点数。字符型:用”括起来,包括所有的西文字符和汉字,如”123”,”abc”,”夏天”若字符串中有双引号,则要用连续两个双引号来表示,如” ” ” 123” ” abc”,输出为”123”abc逻辑型:当逻辑型数值转化为整数时,true=-1,false=0;当其他类型的数据转化为逻辑型数据时,非零为true,零为false日期型:用一对#括起来,#mm/dd/yy#、#mm-dd-yy#变量的命名规则:必须以汉字(中文系统中可以用)或字母开头,由字母、汉字、数字或者下划线组成,长度小于等于255个字符。不能使用vb中的关键词Vb中不区分大小写,Xyz,xyz,XYZ都是同一个变量。3xy:不能数字开头;y z:不能出现减号;wang ping:不能出现空格;dim:不能使用vb中的关键词;cos:最好不要使用,与余弦函数混淆。变量声明:Dim 变量名 as 类型Dim a, b, c as integer, x, y as single :表示a,b,x定义为变体型变量,c为整型变量,y为单精度型变量字符型变量的定义:dim 字符串变量名 as string *长度若长度确定了,而字符串没有达到所定义的长度,则字符串右边用空格补齐,若超过了长度,则将多余的部分截去。变量类型数值类型StringBooleanObjectDate初始值0“” (空串)FalseNothing0/0/0/常量:八进制:&O123,十六进制:&H1234运算符与优先级:优先级:<-(负号)<*;/(除)<(整除);Mod<+;-(减号),优先级越小越先算如:30-true=31;10+false+”14”=24字符串运算符&:字符串的连接,将两个字符串连接起来,若是没有加” ”的数字字符串变量,与&连接时要有空格,否则就认为字符串为长整型。当变量与&连接在一起的时,系统先把它作为类型定义符处理,造成错误。+:连接符两端都应该是字符型,若均为整型,则进行加法运算;若一个为字符型数字,一个为数值型,则把字符型数字变成数值型,再进行加法运算;若一个为非数字型字符,一个为数字型就会出错。10 + “10”=20“10”+”10”=1010“10”+”abc”=10abc10+”abc”=出错10 & 10=1010“abc”&10=abc10“10”&”10”=101010 + “12” &10=2210关系运算符=、>、>=、<、<=、<>(不等于)。结果为逻辑型字符。数字型比较数字大小。字符型按字符的ascii码值从左到右逐一比较,直到出现的字符为止。关系运算符的优先级相同。逻辑型运算符Not:取反;not f = t,not t = f,优先级1And:与;t and t = t,f and t = f,t and f = f,f and f = f,优先级2Or:或;两者之一为真时结果就为真,优先级3Xor:异或;两者为一真一假时结果为真,否则为假,优先级3表达式组成:变量、常量、运算符、函数和圆括号。规则:乘号不能省略;括号必须成对出现;表达式从左到右在同一基准上书写,无高低大小的区别。不同数据类型的转变:如果操作数具有不同的数据精度,则运算结果的数据类型采用精度高的数据类型。Integer<long<single<double<currencyLong型与single型运算,其数据类型应该是double。优先级:算数运算符>字符运算符>关系运算符>逻辑运算符常见内部函数数学函数函数名含义实例结果Abs(N)取绝对值Abs(-3.5)3.5Cos(N)余弦函数Cos(0)1Exp(N)以e为底的指数函数Exp(3)20.086Log(N)自然对数Log(10)2.3Rad(N)随机函数Rad0,1)任意数Sin(N)正弦函数Sin(0)0Sgn(N)符号函数Sgn(3.5)正数为1,0为0,负数为-1Sqr(N)平方根Sqr(4)2Tan(N)正切函数Tan(0)0转换函数函数名含义实例结果Asc(C)字符串转换成ascii码值Asc(A”)65Chr(N)Acsii码值转换成字符Chr(65)“A”Fix(N)取整Fix(-3.5)-3Int(N)取小于等于N的最大整数Int(3.5)3Int(-3.5)-4Hex(N)十进制数转换成十六进制数Hex(100)64Lcase(C)字母转换成小写字母Lcase(“ABC“)abcOct(N)十进制数转换成八进制数Oct(100)144Round(N)四舍五入取整Round(3.5)4Round(-3.5)-4Str(N)数值转换成字符串Str$(123.45)“ 123.45”Ucase(C)字母转换成大写字母Ucase(abc)ABCVal(C)数字字符串转化成数值Val(“123ab”)123Attention:str(N)在转变数值为字符串时,会在数字前面加上一个空格,即:str(123)=“ 123”而不是”123”常用字符串函数函数名含义实例结果Instr(C1,C2)在C1中查找C2是否存在,不存在则为0Instr(”abcdefgh”,”cd”)3Join(A,D)将数组A中的个元素按D(或空格)分隔符连接成字符串A=array(“13”,”ab”,”4”)Join(A,”)“13ab4” Left(C,N)取出字符串左边的N个字符Left(”abcdefg”,3)“abc”Len(C)字符串的长度Len(”abcdefg”)7Mid(C,N1,N2)取字符子串,在C中从第N个字符开始向右取N2个字符,默认N2到结束Mid(”abcdefg”,4,2)“de”Replace(C,C1,C2)在C字符串中用C2代替C1Replace(“abcd”,”bc”,”fg”)“afgd”Right(C,N)取出字符串右边的N个字符Right(“abcdefg”,3)“fg”Space(N)产生N个字符串的空格Space(3)“ “ Split(C,D)将字符串C按分隔符D分割成字符数组,与join相反S=Split(”123,45,ab”,”,”)S(0)=”123”,S(1)=”45”S(2)=”ab”String(N,C)返回由C中首字母组成的N个相同字符的字符串String(3,”abcdefg”)aaaTrim(C)去掉字符串两边的空格Trim(“ abc “)“abc” 编码规则:vb程序中不区分大小写;同一行上可以书写多条语句,语句之间用“:”分隔,一行最多可达25个字符;单行语句可分若干行书写,在在本行后加入续行符“_”(空格加下划线);在句首加上“”则把该句注释。赋值语句:变量名=表达式把等号右边的表达式计算结果赋值给等号左边的变量。Attention:1.赋值号与表示等于的关系运算符都用“=”表示,但是两者有区别。赋值语句:a=b和b=a是两个结果不同的赋值语句关系表达式:a=b和b=a是同一个意思。2.赋值号的左边只能是变量名,不能是常量,常量函数,常量符号,表达式。例:Now()= x + y 错误,左边是表达式5 = x + y 错误,左边是常量x + y =3 错误,左边是表达式3.赋值号两边数据类型不同时的处理 当表达式为数值型并与变量精度不同时,需强制转换成左边变量的精度。例如:n%=3.5 n为整型,转换时四舍五入,n中的结果为5 当表达式是数字字符串,左边变量是数值类型,自动转换成数值类型后再赋值,如果表达式有非字符字串或者空串,则出错。例如:n%=”123” n中的结果是123,与n=val(”123”)一样n%=”la123”或者n%=” 引发运行时异常出现 任何非字符型的值赋值给字符型变量,自动转换为字符型数据的输入和输出输入:. Label1.caption=”*”. r=val(text1.text)print r输出:Inputbox对话框 inputbox(”提示”,”标题”,”默认值,x的坐标,y的坐标”Msgbox:msgbox(”提示”,按钮,标题)按钮设置值:分组内部函数按钮值描述按钮数目VbOkOnly0只显示”确定”按钮VbOkCancel1显示”确定”,”取消”按钮VbAbortRetryIgnore2显示”终止”,”重试”,”忽略”按钮VbYesNoCancel3显示”是”,”否”,”取消”按钮VbYesNo4显示”是”,”否”按钮VbRetryCancel5显示”重试”,”取消”按钮Vb控制结构分组内部函数按钮值描述图标类型VbCritical16关键信息图标VbQuestion32询问信息图标VbExclamation48警告信息图标VbInformation64信息图标在写msgbox的函数时,msgbox(“*”,5+48,”*”),msgbox(“*”, VbRetryCancel+48,”*”),msgbox(“*”, VbRetryCancel+VbExclamation,”*)msgbox(“*”,5+VbExclamation,”*”)执行时效果相同。返回值内部函数返回值被单击的按钮vbOk1确定vbCancel2取消vbAbort3终止vbRetry4重试vbIgnore5忽略vbYes6是vbNo7否Print 方式对象.print 定位函数 输出表达式列表 分隔符如:picture1.print tab(10);string(3,”J”);省略picture1. 则在窗体上输出,省略tab(10) 则在当前位置输入,省略string(3,”J”),则输出一空行分隔符有”;”和”,”两种,”;”定位于输出字符的下一个位置,”,”定于为输出字符的后14个为位置Format格式输出函数格式:Format(表达式,”格式字符串”)符号作用数值表达式格式化字符串显示结果0实际数字位数小于符号位数,数字前后加01234.5671234.567“00000.000”“0000.000”01234.5671234.567#实际数字位数小于符号位数,数字前后不加01234.5671234.567“#.#”“#.#”1234.5671234.567,千分位1234.567“#.#0,0000”1,234.5670%数值乘以100,加百分号1234.567“#.#%”123456.7%$在数字前强制加$1234.567“$#.#”$1234.57E+用指数表示0.1234#0.00E+00”1.23E-01输出时 ; 为紧凑输出,&为字符串连接符 print “a=”;format(a,”0.00”) |a=12.34 Print “a=”;a |a=空格12.34 Print “a=”&a |a=12.34 Print a;”+” |空格a空格+ Print a&”+” |a+选择结构语句1 If Then语句 1.If <表达式> Then <语句块> End 2.If <表达式> Then <语句块> 2. IfThenElse语句(双分支结构) 1.If <表达式> Then <语句块1> Else <语句块2> End If 2.If <表达式> Then <语句块1> Else <语句块2>3. IfThenElseIf语句(多分支结构) 1.If <表达式1> Then <语句块1> ElseIf <表达式2> Then <语句块2> Else <语句块n+1> End IfLJ:语句的顺序按照从上往下执行,若不符合表达式n,则跳转到表达式n+1,若符合表达式n,则执行完语句块n之后直接end ifJL:若有else语句就可以执行else语句,若没有则直接end if,else语句不是必须有的4. Select Case 语句(情况语句) SelectCase 变量或表达式 Case 表达式列表1 <语句块1> Case 表达式列表2 <语句块2> Case Else <语句块n+1> End Select JK变量或表达式:可以是数值型或字符串表达式 表达式列表i:必须与“变量或表达式”的类型相同,可以使下面四种形式之一: 表达式一组用逗号分隔的枚举值表达式1 to表达式2(包含表达式1和2)Is关系运算符表达式(配合关系运算符来制定一个数值范围)Attention:对于多分支结构,用select case语句比用ifthenelseif语句更加直观,程序可读性强,但是如果有多个变量,则只能使用ifthenelseif语句。例:方法一:If x>0 and y>0 then Msgbox(“在第一象限”)If x<0 and y>0 then Msgbox(“在第二象限”)If x<0 and y<0 thenMsgbox(“在第一象限”)If x>0 and y<0 thenMsgbox(“在第一象限”)方法二:Select caseCase x>0 and y>0 then Msgbox(“在第一象限”)Case x<0 and y>0 then Msgbox(“在第二象限”)Case x<0 and y<0 thenMsgbox(“在第一象限”)Case x>0 and y<0 thenMsgbox(“在第一象限”)循环结构语句1. for循环语句用于控制次数的预知的循环结构。 For 循环控制变量=初值to 终值 step 步长 循环体Next 循环控制变量 Ps:a. 循环控制变量必须为数值型, b. 步长=int(终值-初值)/ 步长+1) c. 循环体中有exit for 语句,表示当遇到该语句时直接退出for循环,执行next 语句的下一条语句2. doloop循环形式一: (循环次数>=0) Do While/Until条件 循环体Loop形式二 (循环次数>0) Do 循环体 Loop While/Until条件2 循环嵌套外一次内一轮For i= n to m * For j= x to y # Next j Next i两循环并列For i= n to m *Next iFor j=x to y #Next j数组定义:一组相同类型变量的集合,在使用上的好处是用一个数组名代表逻辑上的一批数据,用下标表示该数组中的各个元素,和循环语句配合使用,使得程序书写更为简洁。注意:1. 数组必须先声明后使用,要声明数组名、类型、维数、数组的大小。2. 数组声明时下标的个数分为一维数组和多维数组。3. 数组声明时根据数组的大小确定与否可分为定长数组和动态数组。定长数组和声明:1.一维数组表达形式:Dim 数组名(下标)As 类型Ps:下标:必须为整数,不可以为表达式或者变量 下标的形式:下界 to 上界,下标可以省略,省略则默认值为0 to上界,但如果在vb中的窗体层或者标准模块层用option base n语句定义时,下界则被人为规定为n 一维数组的大小:上界-下界+1 As类型:如果默认,与前述变量的声明一样,是变体型数组。2. 多维数组表达形式:Dim 数组名(下标1,下标2,)As 类型Ps:下标个数:决定了数组的维数。最多60维。数组大小:每一维的大小为上界-下界+1;数组的大小为各维大小的乘积。动态数组和声明1 建立a 用Dim语句声明数组,但不声明数组的大小:Dim 数组名()As 数据类型b 用ReDim语句分配元素的个数:ReDim 数组名(下标1,下标2)As 类型Ps:用redim分配元素时可以用变量,但是变量要先赋值,而用dim分配时,绝对不可以用变量! Dim语句是说明性语句,可以出现在程序的任何地方。而ReDim语句是可执行语句,只能出现在过程中。 在过程中可以多次使用ReDim语句来改变数组的大小,但每次使用完之后,都会清空数组中的值,可以在ReDim保留字后加Preserve参数,用来保留数组中的数据,但使用Preserve只能改变最后一维数组的大小,前面几维的大小不能改变。 例:ReDimPreserve A(3, 3) 再ReDimPreserve A(3, x)数组的基本操作1. 数组元素的引用数组名(下标1,下标2)2. 数组的赋值array函数变量名=array(常量列表)Ps:其中变量名必须声明为variant变体类型,并作为数组使用。常量列表用逗号分隔,数组的下界和上界可通过lbound和ubound函数获得。功能:将常量列表中的各项值分别赋值给一个一维数组的各元素。例如:Dim a(),i%a=Array(1,2,3,4,5,6)for i=LBound(a)to Ubound(a)print a(i)next i3数组的输入 可以通过textbox或者InputBox输入 例如: Dim x(3,4) as integerFor i = 0 To 3 For j = 0 To 4 x(i, j) = Val(InputBox("输入" & i & "," & j & "元素的值") Next jNext i4. 数组的输出 用print 配合for语句。5. 求数组和、最大值和最小值、位置以及交换数组元素。a 求元素和直接用循环结构进行累加b 求最大值(或最小值),先假设其中一个值为最大值(或最小值),一般取第一个数,然后依次将每一个数与最大值比较,取两者较大值替换给最大值。c 最大值数组元素与第一个数组元素交换,就要求在求最大值元素时保留最大值元素的下标,最后进行交换 例子: Dim a , i%,min%,imin%,t% a=array(23,124,67,21,46,31,24) min=a(0): imin=0 for i=lbound(a) to ubound(a) if a(i)<min then min=a(i): imin=i next i t=a(0): a(0)=a(imin): a(imin)=t print “最小的元素为:”;a(0) 数组倒置: t=a(i);a(i)=a(n-i+1);a(n-i+1)=t 循环次数:(上界-下界)26. 数组排序(快速排序,并归排序,堆排,箱排,基排)排序是将一组数按照递增或者递减的次序排列,排序的算法有很多种,常用的有选择法、冒泡法、插入法、合并排列。(一) 选择法a 从N+1个数字中找到最小数的下标,出内循环,最小数和第0个数进行交换位置;b 在余下的N个数字中再找到最小数的下标,出内循环,最小数和第1个数进行交换;c 依次类推,直到剩下2个数字完成最后的排序。例子:从小到大排序Dim a(), imin%, n%, i%, j%, t%a = Array(8, 9, 4, 6, 2, 3)n = UBound(a)For i = 0 To n - 1imin = i For j = i + 1 To n If a(j) < a(imin) Then imin = j Next jt = a(i)a(i) = a(imin)a(imin) = tNext iFor i = 0 To UBound(a)Print a(i)Next i(二) 冒泡法排序a. 从一个元素开始对数组中的两两相邻的元素比较,即a(0)与a(1)比较,若为逆序则进行交换;然后a(1)与a(2)比较,知道a(n-1)与a(n)进行比较,这样一轮比较完毕,一个最大的数就成了a(n).b. 再依次对a(0)到a(n-1)进行a中的操作,完成第二轮排序。c. 依次进行排序,进行n轮排序之后,所有数完成排序。 例子: 从小到大排序For i = 0 To n - 1 For j = 0 To n - i - 1If a(j) > a(j + 1) Then t = a(j) a(j) = a(j + 1) a(j + 1) = tEnd IfNext jNext iFor i = 0 To nPrint a(i)Next i7. 插入数据在一组有序数据中,插入一个数,使得这组数据仍旧有序。a 首先要查找待插入数据在数组中的位置kb 然后从最后一个元素开始往前知道下边为k的元素依次往后移动一个位置。c 在第k个元素的位置处插入这个数。例子:Dim a(), i%, k%, x%, n%a = Array(1, 4, 7, 10, 13, 16, 19, 22, 25)n = UBound(a)x = 14For k = 0 To n If x < a(k) Then Exit ForNext kReDim Preserve a(n + 1)For i = n To k Step -1 a(i + 1) = a(i)Next ia(k) = xFor i = 0 To n + 1Print a(i)Next i8. 删除数据a 首先找到预删除的元素的位置kb 然后从k+1到n个位置开始向前移动c 最后将数组元素减1例子:Dim a(), i%, k%, x%, n%a = Array(1, 4, 7, 10, 13, 16, 19, 22, 25)n = UBound(a)x = 13For k = 0 To nIf x = a(k) Then Exit ForNext kIf k > n Then MsgBox ("找不到这个数据"): Exit SubFor i = k + 1 To n a(i - 1) = a(i)Next in = n - 1ReDim Preserve a(n)For i = 0 To n Print a(i)Next i过程过程:vb程序就是由一个个过程构成的,除了vb系统提供的大量使用的内部函数过程(function)和事件过程(sub)外,vb系统还允许用户自己自定义过程。1. 函数过程Function <函数过程名> ( <形参表> ) As 类型 <语句组1><函数过程名> = <表达式> Exit Function< 语句组2 >函数过程名2 > = < 表达式 > End FunctionK. As类型:函数返回值的类型。K.形参列表形式: 形参名1 As类型 ,形参名2 As 类型 , 形参只能是变量或数组名(要加“()”,表示是数组),用于在调用该函数时的数据传递;若无参数,形参两旁的括号也不能省。K.函数过程名有值,有类型,在过程体内至少赋值一次,调用时不能独立存在,必须参加表达式的运算。 函数过程例子:求最大公约数的函数过程 Function gcd%(By Val m%, By Val n%) If m<n then t=m: m= n:n=t r=m Mod n Do while (r <> 0) m=n : n=r : r=m Mod n Loop Gcd=n End Function函数过程的调用:因为函数过程名会返回一个值,故函数过程不能作为单独的语句加以调用,必须作为表达式或者表达式中的一部分,再配以其他的语法成分构成语句。例子: Dim x%,y%,z% x=124: y=64 z=gcd(x,y) print “最大公约数是:”& z2. 子过程Sub 子过程名 ( 形参列表 ) 局部变量或常数定义语句块1exit sub语句块2End subL.子过程没有值,故过程名没有类型,也不能再子过程体内对子过程名赋值。而函数过程有返回值,函数过程名也就有类型,因此在函数过程体内必须对函数过程名赋值。L.形参个数确定。L.形参没有具体的值,只代表参数的个数、位置、类型。例子:Sub prothe(ByVal s$, ByRef count%)Dim i%, st%count = 0st = Trim(s)i = InStr(st, "the")Do While i > 0count = count + 1st = Mid(st, i + 1)i = InStr(st, "the")LoopEnd Sub子过程的调用:a Call 子过程名 ( 实参列表 ) b 子过程名 ( 实参列表 ) 例子:Private Sub Command1_Click()Dim n%Call prothe(Text1, n)Lable1 = nEnd Sub参数传递1. 形参和实参:形参:用户自定义函数过程、子过程过程名后用圆括号中的出现的变量名,多个形参用逗号逗开。实参:在调用上述过程中,在过程名后面的参数,其作用是将它们的数据(值或者地址)传送给被调过程对应的形参变量。2. 传地址和传值a 传值方式:在形参前面加上ByVal,按此方法传递参数时,系统将实参的值赋值给形参之后便切断了实参和形参的关系,形参在过程体中发生改变也不会影响到实参。b 传地址方式:在形参前面加上ByRef,按此方法传递参数时,要求实参必须是变量名,此时实参与形参变量共用一个存储单位,在过程中形参发生了改变对应的实参也会改变。例如:两种过程结果都是将a 和b的值交换,则用传值方式,原a和b的值不变,用传地址方式则a和b的值交换。参数传递的选用规则:A 若要将被调过程中的结果返回给主调程序,则形参必须是传地址方式。此时的实参必须 是同类型的变量名。B 若不希望过程中修改实参的名,则用传值方式。增强程序的可靠性和便于调试。C 形参是数组、自定义类型时必须使用传地址方式。数组参数的传递:1. 形参是数组,只需要以数组名和圆括号表示,不需要给出维数上界。2. 对应的实参也只需给出数组名和圆括号(可省)。3. 以传地址方式传递参数。例子:Function sum%(x()Dim i%sum = 0For i = 0 To UBound(x)sum = sum + x(i)Next iEnd FunctionPrivate Sub Command1_Click()Dim b(), s%b = Array(1, 3, 5, 7, 9)s = (sum(b) ' 调用sum子过程Print sEnd SubPs:若在主调过程中x(i)的值发生改变,则b(i)的值也会随之改变。变量作用域以及分类声明方式Dim staticDim Private Public声明位置在过程内窗体模块的通用声明段/标准模块的顶部位置窗体模块的通用声明段/标准模块的顶部位置作用范围能被本模块的其他过程存取不能 能能能被其他模块存取不能不能能,但在变量名前要加上其他模块名静态变量声明形式:Static 变量名 As TypeDim 声明Static 声明使用Dim语句声明的局部变量,只在过程被调用时候存在,即过程被调用时,该变量获得存储空间,过程调用结束,变量占用的存储空间被释放,变量值被丢弃,故每次都初始化。Static语句将局部变量声明为静态变量,它在程序运行过程中可保留变量的值。每次调用程序时,用Static声明的变量保持原来的值,故只初始化一次。用户界面设计在vb中,控件大致分为三类:标准控件、ActiveX控件和可插入对象。常用控件介绍单选按钮、复选框和框架1.单选按钮单选按钮通常以组的形式出现,只允