VB学习记录

一、什么是VB

1.1 VB程序设计是要干什么?

1.添加、设置对象;
2.对对象添加功能。

1.2 编程的基本要素

这里写图片描述

- 对象object

- 类class

- 属性property

- 方法method

- 事件event

事件过程的一般格式:

private sub 对象名称_事件名称()
  ......
  事件响应程序代码
  ......
End sub

1.3编码规则及结构化程序设计

1.3.1编码规则

(1)一行需要写多条语句,语句之间用”:”分隔。

sum=sum+x:count=count+1

一行最多1023个字符。
(2)如果一条语句很长,一行写不下,可以使用”空格+_”进行续行。

print text1.text & text2.text & _
        text3.text

(3)不区分大小写
(4)关键字和变量名、常量名、过程名之间一定用空格分隔
(5)使用左缩进格式体现代码的逻辑结构和嵌套关系
(6)除字符串常量和注释内容外,都是用英文半角符号

1.3.2结构化程序设计

顺序结构

入口
 ↓
语句1
 ↓
语句n
 ↓
出口

选择结构

    入口
     ↓
 真←条件→假
 ↓       ↓
语句1     语句2
  →  ↓ ←
     出口

循环结构

     入口
 ---→↓
 |   条件→假---|
 |    ↓       |
 |    真       |
 |    ↓       |
 |  循环体      |
 |____|        |
               ↓
              出口

二、VB基础知识

2.1 基本构成

2.1.1窗体

窗体的基本属性

1.name(名称)
2.caption(标题)
3.autoRedraw(重绘)
4.backcolor(背景颜色)
5.borderstyle(边框类型)
6.controlbox(控制框)
是否在窗体左上角出现控制菜单按钮,默认为TRUE。
7.enabled(允许)
是否相应用户事件,默认为TRUE。
8.font___(字体)
9.height(高)width(宽)top(顶边位置)left(左边位置)
10.icon(最小化图标)
11.maxbutton,minbutton(是否显示最大/小化按钮)
12.picture(图形)
13.visible(可见性)
14.windowstate(窗口状态)
0(默认)-正常状态;1-最小化状态;2-最大化状态

窗体的事件

【格式】

private sub form_事件名(参数表)
 ......
end sub

【注意】
在事件过程名中的窗体名只能使用form(如form_load),但在过程内对窗体进行引用时必须用到窗体名字(如form1.caption)
【常用事件】
1.load(加载事件)
2.unload(卸载事件)
3.activate(活动事件)deactivate(非活动事件)
4.paint(绘画事件)
该事件被触发的前提是窗体的autoredraw属性被设置为False。当首次显示窗体,窗体被移动或改变大小,或者窗体被其他窗体覆盖时,将触发paint事件。
5.click(单击事件)
6.dblclick(双击事件)
7.keypress(按键事件)

窗体的方法

1.show(显示方法)

`private sub form_load()
    show
    print "内容已显示"
 END sub

2.print(打印方法)
3.cls(清除方法)
4.move(移动方法)
移动并改变窗体或控件的位置和大小,格式为

[对象.]move left[,TOP[,WIDTH[],HEIGHT]]

left:移动对象至目标位置的x坐标
top:移动对象至目标位置的y坐标
width:移动后对象的宽度
height:移动后对象的高度

焦点与Tab键序

1.焦点
【说明】
焦点在任何时候只能有一个,改变焦点将触发焦点事件。当对象得到或失去焦点时分别产生gotfocus或lostfocus事件。
【将焦点赋给对象的方法】
(1)用鼠标选定对象
(2)按快捷键选定对象
(3)按Tab或shift+tab切换
(4)在代码中用setfocus方法在设置焦点

text1.setfocus '把焦点设置在文本框text1上

【注意】
只有当对象的enabled和visible属性为true时,它才能接受焦点。
2.Tab键序
【说明】
当向窗体中设置控件时,系统会自动按顺序给每个控件指定一个tab键序。tab键序也反映在控件的tabindex属性中。通过改变控件的tabindex属性值,可以改变默认的焦点移动顺序。

2.1.2控件

控件的公共属性

命令按钮

1.常用属性
2.常用事件和方法

标签

1.常用属性
2.常用事件和方法

文本框

1.常用属性
2.常用事件和方法

2.1.3使用对话框

inputbox

【格式】

inputbox(a,b,c,xpos,ypos,helpfile,helpcontext)

【说明】
a表示显示的内容
b表示标题
c表示默认值
xpos表示左边距
ypos表示上边距

msgbox

【格式】

msgbox(a,type,b)

【说明】
a表示显示的内容
type表示按钮的类型
b表示标题
type值=表1+表2+表3

表1——出现的按钮
表1)值符号常量显示的按钮
0vbOkOnly确定
表2——图标类型
表2)值符号常量显示的图标
表3——默认活动按钮
表3)值符号常量默认活动按钮

2.2 模块

窗体模块

包含窗体、控件

标准模块

只有代码,供各个窗体中的事件过程来调用

类模块

包含代码和数据,可以看作一个控件,通过它可以制造一个对象,将它应用于窗体模块中

2.3 数据类型

2.3.1基本数据类型

数据类型类型名类型说明符
布尔型Boolean
字节型Byte
整型Integer%
长整型Long&
单精度型Single
双精度型Double#
货币型Currency@
变长字符串String$
定长字符串String*常数$
日期型Date
对象型Object
变体(字符)Variant
变体(数值)Variant

2.3.2用户定义数据类型

将不同类型的变量组合起来定义成一个特定类型的变量
【格式】
Type 用户定义类型名称
元素名 As 基本类型
元素名 As 基本类型
……
End Type
【说明】
标准模块中,Type前面可以是public或private;窗体模块中,Type前面必须是private
【示例】

Type Data_Student
  Name as String
  Age  as Integer
  Sex  as String
End Type

2.3.3枚举类型

【格式】
public|private Enum 类型名称
枚举1 =常数表达式
枚举2 =常数表达式
……
End Enum
【示例】
public Enum Days
sunday
monday
End enum
这里写图片描述

2.4 常量和变量

2.4.1常量

1.文字常量

字符串常量:可以是双引号和回车符以外的任何ASCII字符
数值常量:整型、长整型、货币型、单/双精度浮点数

2.符号常量

【格式】
const 常量名 = 表达式
【示例】
const π= 3.1415926,dollar = 7.99

2.4.2变量

1.变量的命名规则

(1)变量必须以字母或汉字开头
(2)只能由字母、汉字、数字和下划线组成,不能有小数点、空格等
(3)字符个数不超过255个
(4)不能使用VB关键字
(5)不区分大小写

2.变量的类型和声明

(1)在定义变量时指定其类型
【格式】
declare 变量名 as 类型
【说明】
- declare 可以是dim、static、redim、public、private
- dim自动变量
- static静态变量
- private和dim一样,但是不能在过程中定义变量,只能在标准模块或窗体的声明部分定义变量
- redim主要用于定义数组
- public用来在标准模块中定义全局变量或数组
- 类型可以是基本数据类型或者自定义数据类型
(2)用DefType语句定义
【格式】
DefType 字母范围
【说明】
(3)用类型说明符定义变量
【示例】

Dim Aa$  '定义一个字符串变量Aa

(4)自定义类型变量
【格式】
变量.成员
【示例】
自定义数据类型:

Type Data_Student
  Name as String
  Age  as Integer
  Sex  as String
End Type

定义一个名为Hunter的Data_Student数据类型变量,并为该变量的每个成员赋值

Dim Hunter as Data_Student
 Hunter.age = 18
 Hunter.name= “kitty”
 Hunter.sex= “女”

3.变量的作用域

【说明】

名称作用域声明位置使用语句
局部变量过程过程中dim或static
模块变量窗体模块或标准模块窗体或模块的声明部分dim或private
全局变量整个应用程序标准模块的声明部分public或global

(1)局部变量
又称过程级变量,在过程中声明,只能该过程内部的代码才能访问。用dim、static声明。
(2)模块变量
又称模块级变量,主要包括窗体变量和标准模块变量。用private、dim声明。
(3)全局变量
又称全程变量,在标准模块的声明部分中声明,不能在窗体或过程中声明。用public、global声明。
【示例】

2.5常用内部函数

2.5.1数学函数

函数类别函数名称返回值
三角函数sin(x)正弦值
cos(x)余弦值
tan(x)正切值
atn(x)反正切(vb中要把角度换算成弧度)
绝对值函数abs(x)绝对值
符号函数sgn(x)x为整数,返回1;x为负数,返回-1;x为0,返回0
平方根函数sqr(x)平方根
指数函数Exp(x)以自然对数e的底数2.71828,x为指数的值
对数函数log(x)对数

2.5.2转换函数

函数类型函数名称函数说明示例返回值
取整函数int(x)返回值为不大于x的整数int(-3.8)-4
fix(x)返回值为x的整数部分fix(-3.8)-3
类型转换函数asc(x)返回字符串x首字符的ascII码值asc(“ab”)97
chr(x)把x值转换成字符chr(98)b
val(x)返回字符串x中所包含的数值,遇到字母截断val(“123men333”)123
str(x)数值转换成字符串形式str(1234)1234
cint(x)把x的小数部分四舍五入,转成整数cint(3.45)3
ccur(x)把x的值转换成货币类型的值,小数部分最多保留4位且自动四舍五入ccur(12.56748)12.5675
clng(x)把x的小数部分四舍五入转换成长整型clng(3455.63)3456

2.5.3字符串函数

函数类型函数名称函数说明示例返回值
删除空白字符LTrim(s)去掉s左边的空白字符LTrim(” nice “)“nice “
删除空白字符RTrim(s)去掉s右边的空白字符RTrim(” nice “)” nice”
删除空白字符TTrim(s)去掉s左右2边的空白字符TTrim(” nice “)“nice”
字符串截断函数Left(s,n)截取字符串s左边的n个字符Left(“string”,3)str
字符串截断函数Right(s,n)截取字符串s右边的n个字符Left(“string”,3)ing
字符串截断函数Mid(s,n1,n2)从s第n1个字符开始,向后截取n2个字符mid(“string”,3,2)ri
求字符串长函数len(s)返回字符串s的长度len(“金蝶”)2
空格函数space(n)生成由n个空格组成的字符串space(3)” “
string函数string(n,s)生成n个同一字符s组成的字符串string(4,”ab”)aaaa
字符串匹配函数instr(s1,s2)查找字符串s2在s1中的位置,返回值为s2的第一个字符在s1中的位置;如果找不到,返回0instr(“kingdee”,”de”)5
字母大小写转换函数Ucase(s)把字符串s中的小写字母转换成大写字母ucase(“kingdee”)KINGDEE
Lcase(s)把字符串s中的大写字母转换成小写字母lcase(“KingDee”)kingdee
插入字符串语句mid(s,s1,s2)= s1用s1代替s中s1开始,长度为s2的字符s=”i hate you” mid(s,3,4)= “love”i love you

2.5.4时间/日期函数

函数类型函数名称函数说明示例结果
now返回系统日期和时间2002/9/24 8:3:28
date返回系统日期2002/9/24
time返回当前时间8:3:28
日期函数day()返回当前日期day(#2002/9/24#)24
weekday()返回当前是星期几weekday(#2002/9/24#)3
month()返回月份month(#2002/9/24#)9
year()返回当前年份year(##2002/9/24#)2002
时间函数hour()返回小时hour(#8:3:32#)8
minute()返回分钟minute(#8:3:28#)3
second()返回秒second(#8:3:28#)28

2.5.5格式输出函数

【格式】
format (表达式,[,格式串])
【功能】
根据“格式串”规定的格式输出表达式的值。其中,“表达式”为输出的内容,可以是数值、日期/时间、字符串
【格式串常用符号】

符号示例结果
‘#print format(12345.6,”##,###.##”)12,345.6
0print format(12345.6,”0000000”)0012346
.小数点
%百分比符号
,千位分隔符,可放在小数点左面任何位置
E-,E+print format(123.45,”0.000e+00”)1.235E+02
-,+,$print format(12345.6,”+####,#.00”)+12,345.60

2.5.6随机函数

【说明】
rnd(x)随机产生一个0~1(不包括0和1)之间的单精度随机数。(x)可以省略不写。
【示例】
生成一个1~16之间的随机数

private sub form_click()
  randomize  '用来避免每次重启程序后产生和上次一样的随机数
  print rnd()*16
End sub

生成一个1~4之间的随机整数

private sub form_click()
  randomize  '用来避免每次重启程序后产生和上次一样的随机数
  print int(rnd()*4+1End sub

生成一个a~b之间的随机整数

private sbu form_click()
  randomize  
  print int((b-a+1)*rnd()+a)
End sub

2.6运算符与表达式

以下运算优先级从上到下,由高到低;从做到右,由高到低

算术运算符比较关系运算符逻辑运算符
幂^=not
负数-<>and
乘法和浮点除法*,/<or
整除\>异或Xor
求模mod<=等价Eqv
减法和加法-,+‘>=蕴涵Imp
字符串连接&Like
IS

三、基本程序语句

3.1赋值语句

【格式】
[LET] 变量名或属性名 = 表达式
【功能】
计算右端的表达式,并把结果赋值给左端的变量或对象属性。let表示复制,通常可以省略。符号=被称为赋值号。

3.2数据的输入和输出

3.2.1使用print方法输出数据

【格式】
[对象名.] print [表达式列表]
【说明】
(1)对象名可以是窗体(form)、图片框(picturebox)或打印机(printer)的名称。如果省略对象名,则在当前窗体上直接输出。
(2)当输出多个表达式时,各表达式之间用分号“;”或“,”隔开。使用分号分隔符,则按紧凑格式输出;使用逗号分隔符,则各输出项按区段格式输出。
【示例】

private sub form_click()
   a=3:b=4
   print a,b,4+a,
   print 2*b
   print a,,b
   print
   print "a=";a,"b=";b
end sub

输出结果
(3)用print输出字符串时,前后不留空格;输出数值数据时,前面有一个符号位,后面留有一个空格。
(4)print 后面没有内容则输出一个空行。
(5)若语句行末没有分隔符,则自动换货。若以分号或逗号结束,则输出不换行。

3.2.2使用print方法的配合函数

从第n列开始输出,一个汉字占2个位置,当n大于行宽时,输出位置为:n Mod行宽

输入:

print tab(2);"学号";tab(11);"姓名";tab(21);"成绩"

结果:

_ 学号 _ _ _ _ _ 姓名 _ _ _ _ _ _ 成绩

输入:

print "学号";spc(2);"姓名";spc(5);"成绩"

输出:

学号 _ _ 姓名 _ _ _ _ _ 成绩

输入:

print tab(2);"学号";tab(11);"姓名";tab(21);"成绩"

输出:
_ 学号 _ _ _ _ _ 姓名 _ _ _ _ _ _ 成绩

四、选择结构程序设计

VB中实现选择结构的语句主要有:IF语句和select case语句。

4.1条件表达式

条件表达式分为俩类:关系表达式和逻辑表达式。取值为:真和徦。

4.1.1关系表达式

是用比较运算符把俩个表达式连接起来的式子。
【表达式示例】

运算符名称关系表达式示例结果
<小于3<8true
<=小于等于2<=4true
>大于6>8false
‘>=大于等于7>=9false
=等于ac=afalse
<>不等于3<>6true
like比较样式“abc” like “?bc”true
is比较对象变量

【说明】
(1)所有比较运算符的优先级都相同,运算时按其出现的顺序从左到右执行。
(2)比较运算符俩侧可以是算数表达式、字符串或日期表达式,也可以是作为表达式特例的常量、变量或函数,但两侧的数据类型必须一致。
(3)字符型数据按其ascII码值进行比较。比较俩个字符串时,先比较俩个字符串的第一个字符,其中字符大的字符串大。如果第一个字符相同,则取第二个字符比较。
例如:
a 小于 b
abc 小于 b
123 小于 2
abc 大于 ab2
abc 大于 ab

4.1.2逻辑表达式

【逻辑运算符】
and、or、not、xor(异或)、eqv(等价)、imp(蕴含)
【说明】
(1)逻辑表达式的运算顺序是:先进行算数运算或字符串运算,在做比较运算,最后运行逻辑运算。括号优先,同级运算从左到右执行。
(2)一个逻辑表达式里还包含多个逻辑符,运算时,按not、and、or、xor、eqv、imp的优先级执行。

4.2IF语句

【分类】
单分支IF语句
双分支IF语句
嵌套IF语句(多分支IF语句)
【单分支IF语句】

             ↓
            条件----
            ↓真    |假
          语句组    |
            ↓————

(1)单行结构

if 条件 then 语句组

(2)块结构

if 条件 then
   语句组
end if

【双分支IF语句】

          ↓
        —条件—
    ↓真        |假
语句组1        语句组2
    |                     |
     ——     ——
          ↓

(1)单行结构

if 条件 then 语句组1 else 语句组2

(2)块结构

if 条件 then 
  语句组1
else
  语句组2
End if

4.3多分支语句

4.4选择性控件

4.5计时器控件

附:

private 和 public

dim 和 private

sub 和 withevents

byVal…as…

variant和string

双精度和单精度

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

稀有物理理论家

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值