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

双精度和单精度

  • 20
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BasicBasic BasicBasic正是微软公司售出的第一套件。 正是微软公司售出的第一套件。 Basic Basic Basic Basic 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 发展到今天已经有很多版本,如 GW -Basic Basic Basic Basic 、 QuickBasic QuickBasic QuickBasic QuickBasic QuickBasic QuickBasic QuickBasic 、QBasic QBasic QBasic QBasic QBasicVisual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic , 等其中Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic Visual Basic 是最容易学习与应用的程序语 是最容易学习与应用的程序语 是最容易学习与应用的程序语 是最容易学习与应用的程序语 是最容易学习与应用的程序语 是最容易学习与应用的程序语 是最容易学习与应用的程序语 言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来言之一。 虽然最容易学习与使用,但它的功能却非常强大很多应程序都是编写出来不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 不是个都能成为比尔盖茨,但你想知道天使用的 WindowsWindowsWindows Windows的诸多功能是如何实现吗? 的诸多功能是如何实现吗? 的诸多功能是如何实现吗? 的诸多功能是如何实现吗? 的诸多功能是如何实现吗? 的诸多功能是如何实现吗? 的诸多功能是如何实现吗? 你想要编写自己的应用程 你想要编写自己的应用程 你想要编写自己的应用程 你想要编写自己的应用程 你想要编写自己的应用程 序吗?通过学习 序吗?通过学习 序吗?通过学习 序吗?通过学习 VB 就能写出很多应用程序。 就能写出很多应用程序。 就能写出很多应用程序。 就能写出很多应用程序。 就

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值