VB讲课笔记14:二级VB知识点总结

VB讲课笔记14:二级VB知识点总结


一、对象概述

1、三大特性:封装性、继承性、多态性

参看《VB讲课笔记13:公共基础》中的程序设计基础部分。


2、对象的属性:了解VB对象的常用属性

3、对象的方法:了解VB对象的常用方法

4、对象的事件:了解VB对象的常用事件


二、VB语言基础

1、数据类型

Byte

Integer, %

Long, &

Single, !

Double, #

Currency, @

String, $

Variant

2、常量

(1)数值型常量:567、-54、456.7878(3.14e-5会自动转换成0.0000314)

任务:将456.7878保留到小数后3位

方法一、利用Format函数

方法二、利用取整函数Int

方法三、利用Round()函数


(2)字符串常量:"I love VB.","我爱VB。"


(3)逻辑型常量:True和False

(4)日期型常量:#2018/03/18#、#2018/3/25 9:00:00 AM#


如果显示中国日期格式,那么就要使用Format函数:


3、变量

在VB里,变量可以不声明就使用,但是在通用段必须没有Option Explicit语句。

(1)声明变量

        Dim | Static | Private | Public 变量1 As 类型1, 变量2 As 类型2,... 变量n As 类型n

        说明:dim可以在过程、窗体、模块里使用,static只能在过程里使用,private和public只能在窗体或模块通用段使用。

        窗体级别的public变量,访问时必须窗体名作为前缀,但是模块级别的public变量访问时无须加上模块名作为前缀。

       

(2)变量赋值

    变体型变量可以接收任何类型的数据。

    

   一般情况,最好按照变量类型来赋相同类型的数据。


   如果将包含字母的字符串数据或日期数据赋给数值型变量,都会报错:


   

   给对象变量赋值,需要使用Set关键字。

   

(3)输出变量

      使用print语句输出一个或多个变量值,使用半价逗号或分号来隔开。

    


通过space()来指定两个数据之间的空格,假如要求x与y'之前有20个空格:


4、运算符

算术运算——关系运算——逻辑运算——赋值运算

要注意一点,赋值运算是所有运算中级别最低的。


(1)算术运算符:^ —— - —— *、/ —— \ —— Mod —— +、-

(2)关系运算:=、<>、>、>=、<、<=

       任务:写出a、b、c能构成三角形的条件。

      

 

采用反向思维:

不能构成三角形的条件是:a + b < c Or b + c < a Or c + a < b

反过来,能构成三角形的条件:Not (a + b < c Or b + c < a Or c + a < b) 





(3)逻辑运算:Not —— And —— Or (补集——交集——并集)

(4)字符串运算:+、& (建议使用后者,因为可以自动类型转换)

(5)日期运算:日期-日期、日期+天数、日期-天数





5、表达式

(1)单行:没有上下标、没有分式

(2)不省:运算符“*”不能省略

(3)只能使用圆括号改变优先次序

 示例:(-b + Sqr(delta)) / (2 * a)

6、常用内置函数

(1)数学函数:Abs()、Sqr()、Int()、CInt()、Fix()、Round()、Sgn()、Rnd()、Sin()、Cos()、Tan()、Atn()、Exp()、Log()


(2)字符串函数:Len()、Left()、Right()、Mid()、Chr()、Asc()、Val()、Str()、UCase()、LCase()、InStr()



(3)日期函数:Date、Time、Now()、Year()、Month()、Day()、Hour()、Minute()、Second()、WeekDay()


(4)其它函数:Format()、IIf()、Shell()、Space()、Spc()、Tab()


三、数据输入输出

1、输出语句Print:输出多项数据,可用半角逗号或分号分隔

2、输入框函数InputBox

     参数1:提示

     参数2:标题

     参数3:默认值

     参数4:横坐标

     参数5:纵坐标

    注意:输入框函数返回的是字符串,如果希望通过输入框得到一个整数,那么要使用Val()函数来转换。

3、消息框函数MsgBox

   按钮类型:vbOKOnly、vbYesNo、vbOKCancel

   图标类型:vbInformation、vbExclamation、vbQuestion、vbCritical

(1)有返回值,当函数用

(2)没有返回值,当语句用


四、窗体与常用控件

任何控件都有名称(Name)属性,只能在设计模式时进行设置,在代码里不能修改控件的名称属性。

1、窗体(Form)

(1)属性:Caption、BorderStyle、ControlBox、MaxButton、MinButton、StartUpPosition、Visible、Enabled....

(2)方法:Show、Hide、Move、Print、Circle....

(3)事件:Initialize、Load、Activate、Click、DblClick、Resize、Unload

2、标签(Label)

(1)属性:Caption、AutoSize、BackStyle、WordWrap

(2)事件:Click

3、文本框(TextBox)

(1)属性:Text、MultiLine、ScrollBars(0 - None、1 - Horizontal、2 - Vertical、3 - Both)、MaxLength

(2)事件:KeyPress、Change、SelChange

任务:在文本框输入小写字母,自动变成大写字母,但是输入大写字母,自动变成小写字母,其它字符不改变。


4、按钮(CommandButton)

(1)属性:Caption(怎么设置热键字母,例如:退出(&X))、Default、Style(0 - Standar,1 - Graphical)、Enabled、Picture、DownPicture、DisabledPicture

    要在运行时设置或清空图片,使用Loadpicture()函数。要访问当前工程目录下的图片文件,比如“pic.jpg”。

   Command1.Picture = LoadPicture(App.Path & "\pic.jpg")

(2)事件:Click

5、单选按钮(OptionButton)

(1)属性:Caption、Value(True、False)

(2)事件:Click

6、复选框(CheckBox)

(1)属性:Caption、Value(0 - 未选中、1 - 选中、2 - 禁选)

(2)事件:Click

7、列表框(ListBox)

(1)属性:List(i)、MultiSelect(True - 多选、False - 单选)、Selected(i)、ListCount、ListIndex

(2)方法:AddItem、RemoveItem、Clear

(3)事件:Click




真题演练:


注意:列表框的AddItem方法的参数是要添加的列表项,但是RemoveItem方法的参数不是要删除的列表项,而是待删除项的下标。如果传给RemoveItem方法的参数不在[0, List1.ListCount - 1]范围内,那么会报错:“无效的过程调用或参数”


第一个循环:

循环变量从1递增到6,每个值作为列表项添加到列表框,因此列表框包含六个元素:1、2、3、4、5、6。

第二个循环:(列表项下标是从0开始的,因此,下标为1的列表项是列表框第2个元素)

当 i = 1 时,List1.RemoveItem 1,删除列表框[1、2、3、4、5、6]第2个元素,于是列表框剩下五个元素:1、3、4、5、6

当 i = 2 时,List1.RemoveItem 2,删除列表框[1、3、4、5、6]第3个元素,于是列表框剩下4个元素:1、3、5、6

当 i = 3 时,List1.RemoveItem 3,删除列表框[1、3、5、6]第4个元素,于是列表框剩下3个元素:1、3、5


8、组合框(ComboBox)

(1)属性:List、Style(0、1、2 - Dropdown List),Text

(2)方法:AddItem、RemoveItem、Clear

(3)事件:Click




9、滚动条(HScrollBar、VScrollBar)

(1)属性:Value、Min、Max、SmallChange、LargeChange

(2)事件:Scroll、Change

10、图片框(PictureBox)—— 容器控件

(1)属性:Picture、AutoSize(True - 改变图片框将就图片)

(2)方法:Print、Cls、Circle……

(3)事件:Click

11、图像(Image)

(1)属性:Picture、Stretch(True - 缩放图片将就图像控件)

12、计时器(Timer)

(1)属性:Enabled、Interval(毫秒)

(2)事件:Timer

13、形状(Shape)

(1)属性:Shape(0 - Rectangle、1 - Square、2 - Oval、3 - Circle、4 - Rounded Rectangle、5 - Rounded Square)

(2)事件:Click

14、框架(Frame)—— 容器控件

(1)属性:Caption


五、控制结构

(一)顺序结构

常用语句:Stop、End、Rem

(二)选择结构

1、If

(1)行If

(2)块If

(3)If嵌套

(4)If延拓

2、Select Case

     case后的表达式:单个值、多个值(用半角逗号隔开)、范围、条件(Is > 10、Is <= 100)

(三)循环结构

1、当型循环

条件成立,执行循环,条件不成立,终止循环。

(1)前测试:While...Wend

(2)前测试:Do While...Loop

(3)后测试:Do...Loop While

2、直到型循环

条件不成立,执行循环,条件成立,终止循环。

(1)前测试:Do Until...Loop

(2)后测试:Do...Loop Until

3、循环嵌套

    循环嵌套是包含,不能交叉。

    任务:显示60以内的不重复的勾股数。

    

      由于a与b的对称性,枚举得到的全部勾股数有重复,要除以2,才得到不重复的勾股数的数量。

    

六、数组

(一)一维数组

1、普通数组

(1)声明

     Option Base 0

     Dim a(10) As Integer    个数 = UBound(a) - LBound(a) + 1 = 10 - 0 + 1 = 11

     Dim b(5 To 10) As Single  个数 = UBound(b) - LBound(b) + 1 = 10 - 5 + 1 = 6

     

    Option Base 1

     Dim a(10) As Integer    个数 = UBound(a) - LBound(a) + 1 = 10 - 1 + 1 = 10

     Dim b(5 To 10) As Single  个数 = UBound(b) - LBound(b) + 1 = 10 - 5 + 1 = 6

(2)赋值

      a(4) = 100

      b(7) = 200

2、控件数组

    通过下标Index访问控件对象

    

(二)二维数组

1、声明

    Dim a(3, 4) As Integer

    Dim b(2 To 5, 3 To 6) As Integer

2、赋值

     a(1, 2) = 100

     b(3, 5) = 200

(三)遍历数组

1、传统For循环

2、For Each循环


七、过程

(一)键盘事件

1、KeyPress(KeyAscii As Integer)

2、KeyDown(KeyCode As Integer, Shift As Integer)

3、KeyUp(KeyCode As Integer, Shift As Integer)

     Shift参数涉及几个常量:1- vbShiftMask、2 - vbCtrlMask、4 - vbAltMask

(二)鼠标事件

1、MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

2、MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

3、MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

    Button参数涉及几个常量:1 - vbLeftButton、2 - vbRightButton、4 - vbMiddleButton

(三)通用过程

1、子过程Sub:没有返回值

2、函数过程Function:通过函数名返回函数值

3、值传参与地址传参

(1)值传参:ByVal,单向传递,实参传给形参,形参变化不会影响实参。

(2)地址传递:ByRef(默认),双向传递,实参传给形参,形参变化之后,实参随之变化。

4、过程递归调用

     过程自己调用自己,递归调用一定要有结束条件。


八、菜单与对话框

(一)菜单

1、下拉菜单

(1)属性:名称、标题、快捷键、复选框菜单项、可用

(2)事件:Click

2、快捷菜单:PopupMenu 菜单名 

(二)对话框

1、公用对话框(cdlg)

(1)打开对话框:cdlg.ShowOpen —— FileName、Filter

(2)保存对话框:cdlg.ShowSave —— FileName、Filter

(3)字体对话框:cdlg.ShowFont —— FontName、FontSize、FontBold、FontItalic

(4)颜色对话框:cdlg.ShowColor —— Color

(5)打印对话框:cdlg.ShowPrinter

(6)帮助对话框:cdlg.ShowHelp

2、自定义对话框


九、文件管理

(一)顺序文件

1、打开文件
Open 文件名 For <模式> As [#]<文件号> 
2、关闭文件
Close [#文件号1],[#文件号2]…
3、向顺序文件写数据
(1)Write #文件号,[输出项列表] 
(2)Print #文件名,[{Spc(n) | Tab[(n)]}] [输出项列表] [{,| ;}] 
4、从顺序文件读数据
(1)Input #文件号,变量列表 
(2)Line Input  #文件号,字符串变量
(3)变量=Input(读取的字符数,#文件号)

(二)随机文件

1、打开随机文件
Open 文件名 For 
Random As [#]文件号 Len =<记录长度> 

2、关闭随机文件

Close [#文件号1],[#文件号2]…

3、读随机文件

Get [#]文件号, [记录号], 变量名

4、写随机文件

Put [#]文件号, [记录号], 变量名


十、公共基础

1、数据结构和算法

(1)数据结构:线性结构(列表、队列、栈)和非线性结构(树和图)

(2)算法:时间复杂度和空间复杂度、查找算法和排序算法

2、程序设计基础


3、软件工程基础


4、数据库设计基础