VB复习注意事项
ftp://192.168.229.254
方法:对象可以执行的一个动作,表现为函数或过程。
事件:对象可以识别的动作。
对象是方法的施出者,是事件的承受者。
VB中几个文件:
工程文件(.VBP):工程的类型、工程中有几个模块,叫什么,在哪儿……(注意:用户代码,一句没有)
窗体文件(.FRM):窗体与控件的属性设置,所有的事件过程,还有一些通用过程,变量定义……
标准模块(.BAS):变量定义、通用过程
在一个窗体上放置一个对象,进行过若干设置后,运行窗体,发现对象不在窗体上,为什么?
关于Print
Print 输出项[分隔符]
Print “A”;
Print “B”
Print “C”
LoadUnLoad是窗体专有的事件
List1.List(序号):序号从0开始,最大到List1.ListCount-1
ListIndex:列表项的序号,若为-1,则表示没有选中
List1.List(List1.ListIndex)结果相当于List1.Text
List1.AddItem 项目[,序号]
List1.RemoveItem 序号
List1.Clear
组合框的Style属性值为01时,可以触发Change事件
Caption属性中,在某个字母前加&,如&F,则表现为F,使用时可以用Alt+F来访问
在菜单中插入分组线,用“-
多窗体设计时,启动窗体为设计时第一个添加的窗体,可以通过工程属性来改变启动窗体。
事件过程名称构成:
一般对象:对象名_事件名([参数])
窗体:Form_事件名([参数])
典型的错误:
Text1.Print kkkk
Form1.Clear
List1.Cls
容器对象:窗体、图片框、框架
最典型的应用:用于对选项按钮的分组
可以显示图片的对象:窗体、图片框、图像、按钮、选项按钮、复选框(后三个必须要将Style属性设置为Graphical
Caption属性:窗体、标签、按钮、选项按钮、复选框、框架
属性窗口中并没有列出一个对象的所有属性。
四类属性:
既能在设计时改变,又能在运行时改变(例如Text,Visible,Enabled等)
只能在设计时改变(如NameIndex等)
只能在运行时改变(如Drive,Path等)
只读属性(如ListCount等)
前两种属性出现在属性窗口中,后两种则不出现。
几种对象的清空方法:
窗体和图片框:[对象名.]Cls
列表框与组合框:对象名.Clear
文本框:对象名.Text=””
事件过程只能出现在窗体模块中。
数据类型:
字符串String:有定长与变长之分。
数值数据:
Integer整型,-32768~32767,两字节,补码表示
Long长整,四字节,补码表示
Single单精度,4字节
Double双精度,8字节
Byte字节型,1字节,0255
Currency货币,8字节
布尔型,Boolean,双字节,只有TrueFalse两个值
日期型,Date8字节
变体型,Variant
100!表示100是一个单精度的数,而不是整数
%整型,&长整,!单精度
#双精度,@货币,$字符串
整数有三种表示方法:
十进制,八进制(&O),十六进制(&H
若一个整数在[-32768,32767]内,则系统认为是Integer类型,否则认为是Long类型;一个带小数的数,系统认为是Double类型。
变量种类
关键字
定义位置
作用域
生命期
引用方法
局部变量
Dim
过程中
所在过程
所在过程运行时间
所在过程直接使用
模块变量
Dim
Private
模块的通用声明处
所在模块
模块运行时间
模块内各过程直接使用
全局变量
Public
模块的通用声明处
应用程序
应用程序运行时间
[模块名.]变量名
静态变量
Static
过程中
所在过程
应用程序运行时间
所在过程直接使用
20090412
+号运算符只有两边的数据都为字符串才是连接,与&功能相同。
&运算符不管前后数据为何类型,总是将两个数据进行连接,结果是字符串。
非整数向整数转换时的规则——“四舍六入五成双”:
若一个数的小数部分大于0.5,则向上进;若小于0.5则舍掉;若等于0.5则要保证结果为偶数。
^/运算结果为Double类型;
\ Mod要求参与运算的数必须为整数,若不为整数,则按“四舍六入五成双”原则转换成整数,同时结果为整型(IntegerLongByte);
+-*运算结果:若运算的两个数类型相同,则结果类型也与其相同,否则,结果类型为在内存中存储长度较长的那种类型。(Integer*IntegerInteger,Integer*LongLong,Integer*SingleSingle,Single*LongDouble
等等)
赋值总是——左值=右值(数据类型的相容):
左为字符串时,右可以为任何数据;
左为数值,右可以为数值、数字字符、布尔值(True-1,False0)、日期时间(日期整数部分,时间小数部分);
左为Boolean,右可以为数值、数字字符(非0True0False)。
赋值符=,比较符=
要注意题目的描述到底是表达式还是语句,在表达式中只有比较运算,不可以是赋值;在语句中,只有最左边的一个=是赋值号,其余均为比较符。
窗体通用声明处不能定义全局(Public)的常量、全局定长字符串与全局数组。在窗体通用声明处不可以出现函数运算,只能是基本的运算。
也就是说下面的语句均为错误语句:
Public Const City As String=”苏州
Public S As String*5
Public A(10) As Integer
Const X As Integer=Int(5.4)
InputBox函数与Text属性的类型是字符串。
Int()(下取整)与Fix()(取整数部分)两个函数不能改变结果类型;而CInt会将结果转换为整型。
LeftRightvb 字符串转数组与Mid三个函数一般是对字符串运算,若运算对象为数,则默认情况下相当于在此数上先加上一个CStr函数转换为字符串后再运算。
Len函数:功能是返回一个字符串中有多少个字符的(长度)。若参数不是字符串,则返回的是此种类型在内存中的存储字节数。(Integer2,Single4,Double8……)
对于定长字符串而言,长度在定义时就已确定,与实际赋值无关。若超长则截掉,若不够则补空格。
Str将正数转换为字符串时,在最左边保留一个空格作为符号位;而CStr函数将正数转换为字符串时,不保留符号位。
注意三角函数的参数应该为弧度,lnxLog(x)eExp() 3.14
单行的If语句是不需要加End If的。
多行的If语句是必须要加End If的。
多分支的If语句中,ElseIf不能写成Else If
Select Case语句中的匹配表达式(也就是Case后的条件)可以有三种形式:
1. 枚举值:如Case 1,3,5,7,8,10,12
2. 一个区间:如Case 10 To 20Case ”A” To “Z”
3. Is表达的普通条件:如Case Is>100
上述三种形式可以出现在一个Case中。如Case 1,3,5,20 To 30,Is<-50
For循环中,若循环变量的值在初值与终值的闭区间内,则要循环,否则结束循环。
若有For I=A To B Step C,其中I是循环变量,ABC均为变量,则ABC在循环体中的变化是不会影响循环次数的。
For循环中循环变量、初值、终值以及步长应该为整数。
For循环中循环变量的变化是隐藏的。
Do循环分当型(Do While)与直到型(Do Until)两种,每一种又有两种形式:先循环后判断与先判断后循环。
当型循环是条件成立时执行循环,直到型循环是条件成立时结束循环。
结构的嵌套要求,一个结构把另一个结构完全包围,不能出现交叉。
Exit For是退出当前一层For循环,与Do循环无关;Exit Do是退出当前一层Do循环,与For循环无关。
(20090419)
VB中一个数组的所有元素的数据类型都是相同的。一个数组元素可以当作普通变量来使用。
声明数组的时候,如果不指定下标下界,默认为0,若有通用声明处有Option Base 1语句则默认为1。(有自己的以自己的为准,自己没有,才由Option Base语句决定)
声明固定数组时,下标只能用常量或常量表达式,且只能为整数,不可以是变量。
Array函数可以将一个变体类型的变量转换为一个一维数组。
动态数组在开始声明时不需要指定维数与维界(如Dim A() As Integer),在使用时需要用ReDim对数组的维数与维界进行说明,且可以多次更改说明。
在重定义数组时,若没有Preserve时,重定义后,数组中原有内容全部清空(即为初始化——把内容变为该数据类型的默认值);若要保留原有内容,则必须加Preserve子句。有Pr
eserve后,数组的维数便不能被更改;只有最后一个维界可以改变。
特别注意:重定义数组时,绝对不能改变数组的类型。
Erase语句的功能:复位固定数组(清空所有元素内容,变成默认值);释放动态数组空间。
对于固定数组,在Erase之后可以直接使用,对于动态数组,在Erase之后必须要用ReDim重定义。
ReDim语句不能出现在窗体通用声明处;窗体通用声明处不能定义全局的数组。
二维数组的输出方法:
窗体上、图片框、多行文本框:
    Dim A(4, 5) As Integer
    Dim i As Integer, j As Integer
    Randomize
    For i = 1 To 4  '控制的是行号
        For j = 1 To 5  '控制是列号
            A(i, j) = Int(90 * Rnd) + 10
            Print A(i, j);  '窗体输出,不换行
            Picture1.Print A(i, j); '图片框输出,不换行
            Text1 = Text1 & Str(A(i, j)) '文本框输出,不换行

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。