VB110
——炫彩里的新生™
Mayafa®Software 出品
2003年10月23日星期四
1. VB应用程序的开发以对象为基础,并运用事件驱动机制实现对Windows操作系统的事件响应。
2. 编制应用程序的3个基本步骤依次为:界面设计,过程设计,调试运行。
3. 向窗体中添加控件的方法:(1)单击图标,通过鼠标拖拽画出,大小位置随意(2)双击图标,出现在窗体中央。
4. 对当前控件的缩放和移动:(1)鼠标修改(2)通过属性窗口修改Left,Top属性控制左上角的坐标,Width宽度,Height高度。
5. 程序体的标点必须为英文半角字符,中文标点不能使用。
6. 以单引号或Rem开始注释语句。
7. 启动运行程序的快捷键为F5。
8. 保存时,窗体文件*.frm,工程文件*.vbp,2种基本文件。
9. 可将保存的工程文件转换成可执行文件*.exe,此新生成的文件可脱离VB环境直接在Windows下运行。
10. *.frx 为外部数据调用文件,不是必备的。
11. 对象是指VB可以访问的实体,属性是对象的性质。
12. 修改控件属性的方法:(1)由属性窗口输入(2)程序中利用赋值语句改变:
对象名.属性名=属性值
13. 方法是某些规定好的用于完成某种特定功能的特殊过程,它的调用方法是:
对象名.方法名 [参数]
14. 事件是VB预先定义的,对象能够识别的动作。
15. 下面以窗体为例,介绍一些常用属性:
Name:名称,标识符。
Caption:标题,标题栏显示的文本。
Left,Top,Width,Height:决定位置。
Backcolor:背景色。
Borderstyle:边框风格,类型。
Enabled:是否对事件产生响应,是否可用。
Visable:是否可见。
Moveable:是否可移动。
Windowsstate:窗口大小,0标准,1最小化,2最大化。
Fontbold,fonritalic,fontname,fontsize:输出到窗体的字,是否粗体,是否倾斜,字体名称,字体大小。
16. 窗体常用事件:Click单击,Dbclick双击,Load装载,Unload卸载。
17. 窗体常用方法:Print显示输出;Cls清除Print输出的字符或作图绘制的图形;Show:显示窗体,若没加载则加载;Hide:隐藏窗体,但不卸载。
18. 可选择在多个窗体情况下,从哪个窗体启动。
19. 窗体的缺省坐标单位,1缇=0.01764毫米。
20. 下面是VB各种常用的数据类型:
整型 2字节 -32768~32767
长整型 4字节 和整型都精确表示
单精度 4字节 7位有效,不精确。
双精度 8字节 15位有效,不精确。
货币型 8字节
字节型 1字节 0~255,无负数。
字符串 几乎不限 String*size定长字符串,Size为长度。
逻辑型 2字节
日期型 8字节
21. 超过有效范围的数值,会发生溢出错误。
22. 前缀&H用于表示十六进制,&O用于表示八进制。
23. 字符串常量应用双引号括起来。
24. 逻辑常量中,False恒为0,非0为True,True为-1。
25. 日期常量以“#”括起来。
26. 自定义的符号常量,定义语句为 Const 〈符号常量名〉=〈常量〉
27. 变量名的书写要点:(1)首字符必为英文字母(2)不能涉及VB中的关键字(3)不能与过程名,符号常量同名(4)无大小写区别
28. 隐式声明中的五种类型(%&!#$):百代叹井美,整长单双字。
29. 强制声明的语法结构:Dim〈变量名〉As〈数据类型〉,〈变量名〉As〈数据类型〉…未注明 As〈数据类型〉的变量为变体类型。
30. 变量的初赋值:数值类型均为零,变成字符串为零长度,定长字符串以空格填充,逻辑型初始化为False。
31. Print语句语法:〈对象名称〉.Print 〈输出项〉
(1)其中“,”为分段方式,“;”为紧凑格式,可出现在输出项之间,也可以是末尾,指示下一个Print的起始输出位置(2)省略输出项,则实际效果为空行(3)所指的段是14列(4)输出对数字而言,前导一个符号位,正号省略,后继一个空格位。
32. 赋值语句格式 〈变量名〉=〈表达式〉或〈控件名〉.〈属性名〉=〈表达式〉
注意:(1)不得出现溢出性错误(2)浮点类型四舍五入向整型赋值(3)任何类型可向字符串赋值。
33. 最经典的交换A,B数值的程序,C为临时变量 C=A:A=B:B=C
34. 整除或求余(\)(mod)时,若两边有数非整,则自动四舍五入后计算。
35. 算术运算符的优先级:指数运算^—〉取负-—〉乘除—〉整除\—〉求余mod—〉加减
注意:在实际编程运算中,应使用尽可能清晰的小括号限定计算顺序。
36. 字符串运算中,“+”用于同为字符串类型的相连,而“&”相联则无须考虑类型。
37. 比较运算符的运算规律:结果为布尔类型。
(1)对数值比大小(2)对日期比先后(3)对字符串,则依次比较每一个字符的Ascii码。注意:若两个字符串“=”关系结果为True,则必为完全相同的字符串。
38. 逻辑运算符的优先级:Not>And>Or
39. 各运算符的优先级关系为:算术运算符〉关系运算符〉逻辑运算符
40. 几个常用的数学函数:
(1) 三角函数sin(x) cos(x) tan(x) 反正切atn(x)
注意:运算中的x均为弧度值,若x是角度值,应改为(x*3.1416/180)
(2) abs(x) 求x的绝对值。
(3) exp(x) 求e^x次。
(4) log(x) 求lnx,由此得,换底公式,lgx=logx/log10
(5) sgn(x) 符号函数,正数为1,负数为-1,0为0。
(6) sqr(x) 把x开平方。
(7) int(x) 求不大于x的最大整数。
(8) fix(x) 截尾取整。
41. 字符串的几个常用函数:x为字符串
(1) 去空格类:Ltrim(x)去除前导空格,Rtrim(x)去除后继空格,Trim(x)同时去除前导后继空格。
(2) 取字符类:Left(x,n)左起取n位,Right(x)右起取n位。Mid(x,m,n)从m起取n个字。
(3) 取长度,是储存长度,Len(x),若字符串,则取字符串的长。注意:如果不是字符串,则取他占内存的大小。
(4) 大小写转换:Lcase(x)全小写,Ucase(x)全大写。
(5) 返回几个空格:Space(n)。
(6) Instr(x,y):记录y在x中第一次出现的位置。注意:若x中没有y,则输出0。
42. 日期与时间函数:
(1)Date返回当前日期(2)Time返回当前时间(3)Minute(now),minute(time)返回分值(4)second(now) second(time)返回秒值。
43. 常用各类型转换函数:
(1) str(x) 数值—〉字符串,保留符号位。
(2) val(x) 字符串—〉数字,只转第一个数字形式的字符串。
(3) chr(x) 返回ascii为x的字符,整型—〉字符串。
(4) asc(x) 返回字符串x首字符的ascii值,字符串—〉整型。
44. 几个常用的ascii值:013回车 010换行 065A 090Z 097a 122z
45. 随机函数用法:
(1) randomize:初始化VB的随机函数。
(2) RND:产生[ 0,1>的随机数。注意,要得到[a,b]之间的随机整数,可利用公式:Int(RND*(b-a+1))+a
46. Print方法有关函数:
(1) Tab(x):指定紧接的下一个输出项输出的列数。
(2) Spc(x):输出x个空格。
47. InputBox函数语法:〈变量名〉=InputBox(“提示信息”,“对话框标题”,“默认值”)
注意:变量名和输入类型要一致。
48. MsgBox函数语法:〈变量名〉=MsgBox(“提示信息”,对话框类型,“对话框标题”)
注意:此变量用于检测Msgbox返回状态,一般不用,必须的无意义变量。
49. 行if结构:if … then … if … then … else … 注意:绝对没有endif
50. 如果一条语句太长,写在多行,又要让计算机认为是一条,应在行结束时插入空格加下化线“ _”。
51. 块if结构:if … then if … then
… …
endif else
…
endif
注意:(1)then后不可有语句(2)endif是必需的。
52. 向text属性赋值的字符串中换行(1)允许多行显示的multiline设为true(2)在换行处加入chr(13)+chr(10) 即为先回车,再换行。
53. select case结构:select case 〈测试表达式〉
case 〈表达式列表〉
…
case else
…
end select
注意:(1)测试表达式为数值表达式或字符表达式。
(2)表达式列表:可以是单值,也可以是“表达式 to 表达式”(多值),或用“Is”表示测试表达式的值与其他表达式的比较关系。
(3)注意执行流程,若条件匹配,执行一次,转出该选择,或无条件匹配,执行case else,后转出该选择。
54. For/Next 语句语法
For 〈控制变量x〉=〈初值e1〉to〈终值e2〉 [step〈步长e3〉]
…
next 〈控制变量x〉
注意:(1)缺省步长为1。
(2)循环变量取值不合理,则绝不执行循环体。
(3)语句中exit for,用于转出for/next语句。
(4)当循环正常结束,控制变量为最后一次取值加步长。
55. While/wend 语句语法: while 〈条件〉
…
wend 特点:条件为真执行循环,先判断,后执行。
56. Do/Loop 语句语法
格式1 Do while/until〈条件〉 格式2 Do
… …
Loop Loop while/until 〈条件〉
注意:(1)当while为真,until为假的时候执行。
(2)出现exit do,跳出do/loop结构。
57. 数组下标声明,缺省为0,option base(x),可以设置。
58. 数组语句语法:一维数组:dim x(n) as 数组数据类型
dim x(n to m) as 数组数据类型
二位数组:dim x(n to m,s to t) as 数组数据类型
x为数组名,n为下标,n,s为下标下界,m,t为下标上界。
59. 一个标准的排序程序 s(n)数组,从大到小排列。
For i=1 to n-1
For j=I to n
If s(i)<s(j) then 交换s(i),s(j)
Next j,i
60. 函数过程的编写及调用
[public|private] [static] function〈函数名〉(参数表)as(类型声明)
…
end function
注意:(1)函数体中必有1个赋值语句为函数名赋值。
(2)private过程,只能所在窗体调用,调用格式 x=函数名(参数表)
public过程,被所有窗体调用,调用格式 x=窗体名.函数名(参数表)
(3)用call调用,格式:call 函数名(参数表) 无返回值。
61. sub过程的编写及调用
[public|private] [static] sub 过程名(参数表)
…
end sub
注意:(1)sub绝无以过程名的返回值。
(2)用call调用格式:call sub〈过程名〉(参数表)或sub〈过程名〉(参数表)
62. 有关参数表的几点说明。
(1) 注意参数传入时的顺序,做到一一对应,类型相同。
(2) 以Byval传入的参数,经过运算后,改变只在过程内,对原值无变化。无标识或者以Byref传入的参数,将同时改变过程内外的参数值。
(3) 常量和表达式做参数永为按值传递,数组必为按址传递。
63. 三种不同作用域的变量:
(1) 局部量:存在于小的过程之中,仅被所在过程调用。
(2) 模块级量:存在于单个窗体之中,仅被所在窗体调用。
(3) 全局量:存在于所有窗体之中,调用时指出窗体名,被所有窗体调用。
64. 动态变量与静态变量:
动态变量仅在声明所在区域内有效,出区域后值消失。
静态变量在声明所在区域永久性有效,在调用范围内保持值。
65. 用编辑菜单的复制+粘贴命令,可以建立控件数组。
66. 选中第一个控件,用shift依次点选其他控件,可用“格式”菜单的对齐、统一尺寸、间距,进行格式上的设置。
67. 命令按钮的常用属性:特有或关键:
name:名称,即调用名。
Caption:显示名。注意(1)没有caption属性的控件:文本框,驱动器、目录、文件列表框,图像图片框,定时器,滚动条,组合框,数据库。
(2)在属性后追加“&x”,则x为快捷键,以alt+x召唤命令的click事件。
Enabled:可用性。
Visable:可见性。
Cancel:被esc调用click事件的能力。只能有一个。
Default:被enter调用click事件的能力。只能有一个。
68. 标签框的autosize属性,布尔型,决定在字符数超过caption宽度时,是否自动改变大小以适应显示。
69. 文本框常用属性:
text:文本框所示字符串。
Maxlength:最大长度。
Multiline:是否支持多行输出。
Scrollbars:滚动条:0无1水平2垂直3全加。
Passwordchar:密码串,只能为1个字符,只能在非多行状态下。
70. 文本框常用事件:
change:文本框内容改变时触发。
Keypress:文本框有字符输入时触发。
71. 单选按钮的属性:
caption:显示内容。
Alignment:对齐方式,0左1右。
Tabindex:由tab键切换时的顺序。
value:true表示选中,false表示未选中。
72. 复选框的value属性:0未选,1选中,2预定选中(灰色)。
73. 复选框无双击事件,只有单击。
74. 在容器中的控件,不仅可以随容器移动,而且控件的位置属性也是相对于容器的位置设置的,如窗体,frame控件。
75. 框架控件作为其他控件的容器,应先建立容器,再在容器内添新控件。
76. 列表框常用属性:注意:列表框的索引值均从0开始上数。
List:调用格式:列表框名.List〈索引值〉 ,字符串类型。
Listcount:列表项目个数。
Listindex:被选中项的索引值,无选中则为-1。
Mutiselect:0单选1多选2鼠标拖拽多选。
Text:选中表项的文本。
Select:select(索引值),布尔型,判断有否被选中。
Selcount:选中个数。
77. 列表框常用方法:
列表框名.additem 表项文本[,索引号]
注意:(1)若无索引号,自动追加末尾。(2)或按索引号插入,索引号小于listcount。
列表框名.clear 清空所有表项。
列表框名.removeitem 索引值 清除指定的表项。
78. 组合框的style属性:0文本+下拉 1文本+列表 2下拉
79. 滚动条的常用属性:
value:对于垂直或水平的滚动条,顶端或左端最小,反之最大。可由属性窗口设定,在鼠标点击两端箭头,移动滑块,点击轨道空白部分的时候改变。
Max,min:决定value的最大最小值。
Largechange,smallchange:决定点击轨道空白或两端箭头时value的改变。
80. 滚动条常用事件:change改变value值触发;scroll拖动滑块时触发。
81. 定时器常用属性:interval:单位毫秒,限定timer的触发间隔;enabled:决定可用性。
82. 定时器不可见,仅响应它的timer事件。
83. VB坐标系的几个要点:
(1) 坐标系以缺省左上角最小坐标,右下角最大坐标。
(2) 控件以top,left,width,height实现自我约束。
(3) 容器以scaletop,scaleleft,scalewidth,scaleheight实现自我约束。currentX,currentY决定容器内下一个输出的位置。
(4) scale改变坐标系,语法为: 容器名.scale (x1,y1)-(x2,y2)
(5) scalemade决定坐标刻度,0为自定义,1为缺省(缇)。
84. 图片框属性:
picture:加载图片:图片框名.picture=loadpicture(“路径+文件名”)
清除图片:图片框名.picture=loadpicture(“”)
autosize:布尔型,决定边框是否随着图片的大小变化而变化。
Align:决定图片框相对窗体的位置,0是原位,1上2下,3左4右。
85. 图片框常用属性:
print:图片框名.print 输出表
cls:图片框名.cls 清除加载图片以外的东西。
86. 影像框stretch属性:决定是否自动调整图片大小以适应框架。它和图片框autosize的区别在于,当图片大于框架时,要使框架不变,autosize截去图片超出部分,而stretch将全图按比例缩小以适应。
87. shape形状控件的常用属性。
形状类:shape 0~5。
边框类:bordstyle边框样式 bordcolor边框颜色 bordwidth边框宽度。
填充类:fillstyle填充样式 fillcoclr填充颜色。
88. 颜色的RGB函数,格式为RGB(red,green,blue) 每个单值范围0~255。
89. 以Pset方法画点,格式: 容器.Pset [setp](x,y)[,color]
缺省情况下以forecolor前景色决定颜色,drawwidth决定线宽。
90. 以line方法画线或矩形,格式: 容器名.line (x1,y1)-(x2,y2),color
注意:(x2,y2)可变为step(x2,y2),即相对坐标;末尾加B为矩形,由fill填充类属性决定填充效果;末尾加BF为实心矩形。
91. 画圆:容器名.circle (x,y),radius,color 其中(x,y)为圆心,radius为半径,颜色可省略。
92. 画圆弧:容器名.circle (x,y),radius,(color),start,end
注意:(1)start,end为弧度值,画时从start逆时针向end,若为负值,则增加向圆心的连线。
(2)椭圆,或椭圆弧,即在后面加aspect,为纵横比,正值。
93. 对话框的2种开始形式:
(1) 以action=1~6分别打开“打开,保存,颜色,字体,打印,帮助”对话框。
(2) 以showopen,showsave,showcolor,showfont,showprint,showhelp实现相同的功能。
94. action=1 or 2,改变filename,action=3,改变color。
95. 打开文件属性页的关键字介绍:对话框标题dialogtitle;文件名filename;初始化路径initdir;过滤器(设置文件的类型)filter;过滤器索引filterindex。
96. 菜单分为下拉式菜单和弹出式菜单2种。
97. 下拉式菜单最多6级,一般3级。
98. 菜单中分隔条的设置,它在caption中以一个“-”表示。
99. 驱动器列表框Drive常用属性:
(1)〈驱动器表名〉.drive=〈驱动器名〉 用于指定当前驱动器。
(2)此列表由系统生成,不可additem,removeitem改变此列表。
100. 驱动器列表框改动时,触发change事件。
101. 目录列表框dir的常用属性:
(1) path,当前目录,格式:〈目录列表框名〉.path=〈目录路径〉
(2) listindex:指定当前目录,当前为-1,上一级为-2,下一级为0,以此类推。
102. 目录列表框change事件:改变path时触发。双击某项,也改变path。
103. 文件列表框亦存在path和filename属性,此外pattern属性决定了文件显示的类别。
104. shell方法调用外部可执行文件格式:call shell(文件名)或〈变量名〉=shell(文件名)
105. 目录和文件操作语句:
chdrive 〈盘符〉 改变当前盘。
Mkdir〈文件夹名〉 创建文件夹。
Rmdir〈文件夹名〉 删除一个空文件夹。
Chdir〈路径〉 改变当前目录。
Curdir〈盘符〉 字符串返回当前目录。
Filecopy 〈源文件〉,〈目标文件〉 复制文件,一次一个。
Kill〈文件名〉 删除文件,支持通配符。
Name 〈老文件〉as〈新文件〉 文件改名或移动。
Getattr〈文件名〉 返回文件属性,0常规1只读2隐藏4系统。
Setattr〈文件名〉,参数 设置文件属性。
Filelen〈文件名〉 返回文件长度。
106. 文件操作的3种方式:(1)input顺序只读(2)output从头写文件(3)append从尾追加写入。
107. 文件按储存方式分为ascii文件和二进制文件。
108. 文件按存取方式分为顺序文件和随机文件。
109. 顺序文件的常规操作:
(1) 打开文件,格式:open 〈文件名〉 for mode as 〈通道号〉
mode打开类型:input,output,append之一。
(2) 关闭文件,格式:close〈通道号〉
(3) 写文件,格式:write #〈通道号〉,〈表达式列表〉
注意:按原样输入,所有分格为逗号,无分隔时换行,对字符串自动加引号,其他输入加“#”号。
格式:print #〈通道号〉,〈表达式列表〉
注意:遵循print的输出方式。
读文件,格式:input #〈通道号〉,〈变量名列表〉
line input #〈通道号〉,〈字符串变量名〉
(4) eof #〈通道号〉:测试文件是否到尾。
(5) lof #〈通道号〉:测试打开文件的总长。
110. 简要了解数据库:
(1) access数据库文件,类型为*.mdb。
(2) date的connect:指定数据库类型。
Databasename:指定数据库文件名。
Recordsourse:指定数据库文件的数据表名。
(3) SQL是一种查询功能强大的数据库语言。
孟一凡
MayafaSoftware@hotmail.com
3025333011@zucc.edu.cn
2003年10月23日星期四