Visual Basic 基础要点

通宵了一晚上,为了大家考试复习方便一点......
1.     Visual Basic的基本概念
VB是用于开发和创建Windows操作平台(VB6.0起为32位平台)下具有图形用户界面的应用程序的强有力工具之一
VB引进了新的程序设计方法——面向对象的程序设计方法(OPP)
对象:动作体的逻辑模型称为“对象“,在VB中,对象就是人们可控制的某种东西,如窗体、文本框、按钮
属性:用来描述对象的特征,如窗体的背景、颜色
事件:使某个对象进入活动状态(又称激活)的一种操作或动作,如鼠标单击(“***的click事件…“)
方法:指对象可以进行的动作或行为,如单击窗体后使之“隐藏“或”显示“
文件后缀名:工程文件.vbp    窗体文件.frm/.frx    标准模块.bas    类模块.cls
2.     常用控件与界面设计(仅列出需要注意的地方)
窗    体:所有的控件中只有其在改名后仍对应原名称,即无论其名称属性改为什么,程序中仍以原名Form进行识别
          若要在窗体载入(Form_Load)时就显示东西,必须先将窗体的AutoRedraw属性设为True
          窗体的字符显示方法为Print,清除方法为Cls
文本 框:作为密码框时要对其PasswordChar属性进行设置,一般为“*”
          显示多行时应将MultiLine属性设为True
命令按钮:Caption属性值为显示在按钮上的文字
          Cancel属性值为True时,按【Esc】键即等同于单击本按钮
          Default属性为True时,其它按钮该属性自动为False,当无其它按钮获得焦点时,按回车等同单击本按钮
列表 框:List属性用于保存列表内容,程序中访问形式为“List1.List n”——List1中Index值为n的选项
          添加列表项使用AddItem方法,删除为RemoveItem方法,删除所有为Clear方法
          选取当前单击选中列表项的代码段:List1,List(List1.ListIndex)
图片 框:基本同窗体的使用,常用方法Print、Cls
选项按钮:当其被选中时,Value(取值)属性为True,未被选中时为False
复选 框:当其被选中时,Value(取值)属性为1,未被选中时为0,变灰时为2,表示暂时无法访问
计时 器:Interval时间间隔属性,单位是0.001秒,与Timer事件对应
菜单制作:在两个菜单命令项间插入分隔线可在其间键入一个连字符(-)
          如果想通过键盘访问菜单,除使用快捷键外,还可在相应标题名称后插入(&字母),运行后该字母带有下划线,   
          +【Alt】键一同调用
3.     数据、表达式与简单程序设计
过    程:具有特定书写格式、包含若干可被作为一个整体执行的代码行的一个代码组,根据执行的方式可分为“事件
          过程”和“通用过程”
模    块:VB中用于将不同类型过程代码组织到一起的一种结构,具体分为三种,即窗体模块(某窗体中对应的所有过 
          程的集合)、标准模块(放置可被多个窗体共享的代码,均为通用过程)、类模块(暂不作要求)
代码书写:续行,行尾接“­_”;一行多句,句未接“:”
数据类型:整型(整数2Byte、长整数4Byte)、浮点型(单精度4Byte、双精度8Byte)、布尔型(2Byte)、变体型(≥
          16Byte所有未声明类型的变量均为变体,未赋值时为空字符串或0)、日期型(8Byte)、字符串型(变长时
          10Byte+串长度,定长时串长度)等,详见课本P43-44;注意储存大小和取值范围
常    量:数值常量(八进制在数字前加“&O”,十六进制在数字前加“&H”)、字符常量(用“”引起)、逻辑常量(True
          和False)、日期常量(用“#”括起)、符号常量(自定义时用Const语句声明)
变量命名:由字母、数字和下划线组成,首字母必须是字母;长度不超过255个字符;在作用域唯一;不能与if、print
          等保留词重名;作为变量名的字符内不包括空格、标点号(,.·……)和用于类型说明的字符% & ! # @ $
变量定义:Public  全局变量  在模块或窗口中声明,在工程内所有过程中都有效
          Private  窗体、模块级变量  在模块或窗口中声明,在定义该变量的模块或窗口的所有过程内均有效
          Dim  模块级变量(在模块的通用部分使用)&过程级变量(在过程内使用)
          Static  过程级变量  静态,一旦赋值后不再改变
          (以上定义范围也适用于数组及过程)
显式声明:使用 as Type 说明其类型,如 Dim a as Integer
隐式声明:使用说明字符,%整型、&长整型、!单精度、#双精度、@货币、$字符
Option Explicit:变量必须先定义后使用
运算 符:^(乘方)→ -(负号)→ * 和 / → /(整除)→ Mod(取余) → + 和 - → &
          使用Mod时,若两数中有非整数的,先四舍五入为整再计算
          字符串运算时,+与&同效;若为纯数字字符窜,可与数值进行其余正常运算
关系 符:<、>、≤、≥、<>、=、Is(用来比较两个对象的引用变量),无优先次序
          字符型数据比较大小“逐个比较,遇大则大,长大短小(逐个比较后),完全相同才是相等”,如“AYzz”<”Ay”
          字母大小的比较依据ASCII码,大写字母的ASCII小于其自身的小写字母
逻辑 符:Not → And → Or → Xor(异或,即先非后两个逻辑或)
预算规则:算术运算符优先于关系运算符优先于逻辑运算符
不同类型数据赋值:数值型赋值给布尔型,非0为True,0为False;布尔型赋值给数值型,True为-1,False为0;布
          尔型赋值给字符型,True为“True”,False为“False”
公共函数:详见书P52-55(重要!)
          使用Val函数时,按从左到右的顺序,一旦有字母出现即停止,如 Val(“24244dfe434”)=24244
          A的ASSIC码为65,a的ASSIC码为97,相差32
          CInt函数使用“四舍六入五留双”
          CStr于Str的区别在于前者舍去正数的符号位
          Rnd函数取的是0~1间数值,不含0、1,特殊情况下可得到0
格式化函数:Print Format(“##.#”)有数字则显示,无则不显示,#改为0时,有数字则显示原数,无则显示0
inputBox:inputBox后要加(),并在()写入提示语句、标题等信息
MsgBox:MsgBox后可以不加(),直接写提示语句、标题等信息
4.     选择分支和循环
If & End If 和 Select & End Select一般成对出现
If语句可简写为一行 If……Then…… 此时不用加End IF
Select语句中表达条件不能使用逻辑运算符,多个条件并存可使用“,”隔开
循环中途使用Exit Do或Exit For后即跳出整个循环,常与If……Then……结合使用
Do While a(当满足a是开始循环);Do Until a(循环直到当满足a时停止);
Loop While a(循环,若满足a继续循环,否则停止);Loop Until(循环,直到满足a时停止,否则继续循环)
For循环步长默认为1,可自定义“For i=a to b Step n”——步长为n,循环结束时i=b+步长n
5.     数组
Option Base 1,数组下界从1开始
LBound / UBound函数返回数组某维的下/上界值,默认为第一维
Erase语句重新初始化固定大小数组的元素(全改为0),或释放动态数组的存储空间
动态数组:使用ReDim进行重新定义时,当前储存在数组中的值全部丢失,若要保留,在ReDim后加上Preserve,且  
          只能重定义数组最末维的大小,且根本不能改变维数的数目。例如,如果数组就是一维的,则可以重定义该           
          维的大小,因为它是最末维,也是仅有的一维。不过,如果数组是二维或更多维时,则只有改变其最末维才       
          能同时仍保留数组中的内容。下面的示例介绍了如何在为已有的动态数组增加其最末维大小的同时而不清除 
          其中所含的任何数据
       ReDim X(10, 10, 10)
       . . .
       ReDim Preserve X(10, 10, 15)
         同样地,在使用 Preserve 时,只能通过改变上界来改变数组的大小;改变下界则会导致错误。如果将数组
         改小,则被删除的元素中的数据就会丢失
控件数组使用Index值区别(Index值从0开始)

6. 过程
         VB中过程分3类:子程序过程(Sub,不返回值)、函数过程(Function,返回一个值)和属性过程(Property,返回 
          窗体、模块和对象的属性值)
窗体事件触发顺序:Initialize(初始化)→ Load(加载)→ Activate(激活)→ GotFocus(窗体成为焦点)
过程定义时缺省为全局级,在其它窗体中调用另一窗体中过程时,必须以那个窗体名字作为该共有过程名的前缀,如在 
          Form2中调用Form1中的SL过程,则写成“call Form1.SL”
参数的传递:按地址传递参数使过程用变量的内存地址去访问实际变量的内容。结果,将变量传递给过程时,通过过程
          可永远改变变量值。如果给按地址传递参数指定数据类型,就必须将这种类型的值传给参数。按地址传递参  
          数在 Visual Basic 中是缺省的
          按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量
              本身。在过程中用 ByVal 关键字指出参数是按值来传递的
          如果传递的是数组,则只能按地址传递
递归函数:在过程中调用(或间接调用)自身来完成某一特定任务的过程,类似于数列计算中已知某一项和递推公式(an
               和an+1间的换算关系)求其它项的值
变量的作用域:过程级变量,作用范围仅限于该过程
          模块及变量,作用范围是定义它的模块,模块内的过程都可以应用它们
          全局变量,整可程序中均可引用(用Public声明)
          静态变量,作用范围局限于定义它的过程

7. 文件(仅要求掌握顺序访问)
文件访问类型:顺序访问,文件中数据以ASCII码方式存储
          随机访问,数据以二进制方式存储,记录长度固定
          二进制访问,无数据类型和长度的限制,适用于读写任意结构的文件
顺序文件的写操作:使用Output或Append打开,如“Open‘Text.Dat’For Output As #10”(10为文件号,代      
          替文件名;Text.Dat不写出完整的路径即全名时表示在当前目录中查找该文件)
          使用Print#写入数据(用Output打开时,覆盖原数据;用Append打开时,在末尾追加数据),如“Print #10,
         ‘wolfsl’,‘1136214’”,也可将文本框中字符写入“Print #10,Text1.text”文件
          使用Write#写入数据,区别是比Print格式紧凑,各数据间自动插入逗号隔开,正数前无符号位空格
          打开文件后要使用Close将其关闭,如“Close 10”
顺序文件的读操作:使用input打开,可一行行读取(Line input),一次性读取,一个一个字符读取
          详细见书本或下页MSDN的补充
补充:使用顺序文件访问(以下内容来自MSDN Library Visual Studio 6.0):
打开顺序访问文件
当以顺序型访问打开一个文件时,可执行以下操作:
? 从文件输入字符 (input)
? 向文件输出字符 (Output)
? 把字符加到文件 (Append)
要顺序型访问打开一个文件,Open 语句使用以下语法:
Open pathname For [input | Output | Append] As filenumber [Len = buffersize]
当打开顺序文件作为 input 时,该文件必须已经存在,否则,会产生一个错误。然而,当打开一个不存在的文件作为 Output 或 Append 时,Open 语句首先创建该文件,然后再打开它。
当在文件与程序之间拷贝数据时,选项 Len 参数指定缓冲区的字符数。
在打开一个文件 input、Output 或 Append 以后,在为其它类型的操作重新打开它之前必须先使用 Close 语句关闭它。
编辑为顺序访问打开的文件
如果要编辑一个文件,先把它的内容读入到程序变量,然后改变这些变量,最后再把这些变量写回到该文件。以下各节讨论如何编辑以顺序型访问打开的各记录。
从文件中读取字符串
要检索文本文件的内容,应以顺序 input 方式打开该文件。然后使用 Line input#,input( ),或者 input# 语句将文件拷贝到程序变量中。
Visual Basic 提供了一次读写顺序文件一个字符或一行的语句和功能。
例如,以下代码段逐行读取一个文件:
Dim LinesFromFile, NextLine As String

Do Until EOF(FileNum)
   Line input #FileNum, NextLine
   LinesFromFile = LinesFromFile + NextLine + Chr(13) + Chr(10)
Loop
尽管 Line input # 到达回车换行时它会识别行尾,但是,当它把该行读入变量时,不包括回车换行。如果要保留该回车换行,代码必须添加。
也可以使用 input # 语句,它读取文件中所写的一列的数字和/或字符串表达式。例如,要从一个邮件列表文件中读取一行,可使用以下语句:
input #FileNum, name, street, city, state, zip
可以使用 input 函数来从文件向变量拷贝任意数量的字符,所给的变量大小应足够大。例如,以下的代码使用 input 把指定数目的字符复制到变量。
LinesFromFile = input(n, FileNum)
要将整个文件复制到变量,请使用 inputB 函数将字节从文件复制到变量。因为inputB 函数返回一个 ANSI 字符串,您必须使用 StrConv 函数将 ANSI 字符串转换为一个如下的 UNICODE 字符串:
LinesFromFile = StrConv(inputB(LOF(FileNum), FileNum), vbUnicode)
把字符串写入文件
要在顺序文件中存储变量的内容,应以顺序 Output 或 Append 打开它,然后使用 Print # 语句。例如,文本编辑器可以使用以下代码行来把一个文本框的内容拷贝到文件。
Print #FileNum, TheBox.Text
Visual Basic 也支持 Write # 语句,它把一列数字和/或字符串表达式写入文件。它自动地用逗号分开每个表达式,并且在字符串表达式端放置引号。
Dim AnyString As String, AnyNumber As Integer

AnyString = "AnyCharacters"
AnyNumber = 23445
Write #FileNum AnyString, AnyNumber
这个代码段把两个表达式写入由 FileNum 指定的文件。第一个表达式包含一个字符串而第二个包含数字 23445。因而,Visual Basic 把以下的字符(包括所有标点符号)写入到文件中:
"AnyCharacters",23445
注意 如果正在用顺序型访问的 Write # 与 input # 语句,可考虑换用随机型 或二进制型访问,因为它们更适合面向于记录的数据。

8. 编程技巧
注释:单引号“‘”是注释的引导符,整行注释也可使用“Rem“
空格:分号“;“为紧连其后;逗号“,”为4个table位(1个table位=4个空格);Tab(n)为n个table位
焦点:SetFocus,可用于文本框,按钮等可进行选择的控件
定长字符串:Dim a as string﹡n ——定义一个储存空间占n字节的字符串a
随机数赋值:Int((上限-下限+1)*Rnd+下限)
回车换行:窗体和图片框:单独Print,如Picture1.Print
          文本框:加 & vbCrLf或  chr(13)& chr(10)
将文本框中字符全部选中:Text1.SelStart=0:Text1.SelLengh=Len(Text1)

9. 编程经典算法
求最大公约数,最小公倍数
冒泡排序
二分查找法
求素数
求阶乘
…………
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值