VB基础语法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Private sub command1_click() Click事件 (单击鼠标左键) ……被驱动执行的程序 end sub
对程序而言,可以不处理这个事件,此时这个事件对程序便没有 什么作用。但是如果程序要处理这个事件,该如何进行?
因此,如果觉得某个对象的某种事件有进行处理的必要,则以 “该 对象的名称” 对象的名称”与“该事件的名称”定义这个事件程序,如下示: 该事件的名称” private sub 对象名_事件名() 对象名_ ‘在此编写希望被驱动执行的程序 end sub 将来该对象的这个事件发生时,其对应的事件程序会被驱动。以 后学习每一种对象时,需了解该对象会产生哪些事件和事件发生 时机,这样才能让用户与所编写的程序充分产生交互关系。 了解对象的特性 其实很多对象只要看它的名字,就可以了解它的基本特性。 例如:textbox 例如:textbox 同时亦可以通过了解对象的属性。 懂得控制对象 控制对象的方法不外乎以下两种: 1)设置对象属性 2)调用对象方法
使用static声明变量 使用static声明变量 static 变量名 as 数据类型 static a as integer 使用static声明变量为静态变量。它与dim声明的变量不同之处 使用static声明变量为静态变量。它与dim声明的变量不同之处 在于在执行一个过程结束时,过程中所用到的static变量的值会 在于在执行一个过程结束时,过程中所用到的static变量的值会 保留,下次再调用此过程时,变量的初值是上次调用结束时被子 保存留的值,而dim 保存留的值,而dim 声明的变量在过程结束时不保留,每次调用 时需要重新初始化。 3.3 运算符和表达式 算术运算符 + * / \(整除) mod ^ 关系运算符 = > >= < <= <> 逻辑运算符 not and or xor(逻辑异或) eqv(逻辑等于) xor(逻辑异或) eqv(逻辑等于)
例:定义一个employee(职工)类型,其中包括职工号、姓名、年龄。 例:定义一个employee(职工)类型,其中包括职工号、姓名、年龄。 Type employee empno as integer name as string*10 age as integer end type dim emp as emloyee 在后面的程序中我们可以用“变量.元素” 在后面的程序中我们可以用“变量.元素”这样的形式来引用各个成员。 emp.name=“张三” emp.name=“张三” emp.no=83001 emp.age=21 3.2 变量的声明 在VB中使用一个变量时,可不加任何声明而直接使用,叫做隐式声明。 VB中使用一个变量时,可不加任何声明而直接使用,叫做隐式声明。 使用这种方法虽简单,但却不利于程序调试,所以一般对于变量最好先 声明,后使用。设置方式: 在“工具”菜单中选“选项”,在对话框中选“编辑器”,在“要求变 工具”菜单中选“选项”,在对话框中选“编辑器”,在“ 旦声明” 旦声明”中选中。 dim 变量名 as 数据类型 dim name as string dim sum(3) as integer
currency
逻辑类型 boolean 逻辑型变量的取值范围只能是true(-1)或false(0)。 逻辑型变量的取值范围只能是true(-1)或false(0)。 Dim switch as boolean switch=true switch=switch=-1 这两条赋值语句功能是相同。 这两条赋值语句功能是相同。 变体类型 variant 变体型变量是一种十分灵活的变量,可以保存各种类型 的数据。 在定义变量中没有明确指明数据类型时,变量缺省时定义为变体 类型。 dim x dim y as variant 上述两个语句都是定义一个变体变量。
Initialize与load事件区别 Initialize与load事件区别 同样都是发生在窗体被装入时,两者很容易混淆,实际上intialize事 同样都是发生在窗体被装入时,两者很容易混淆,实际上intialize事 件只有在窗体第一次被装入时发生,而load事件是在窗体每次被装 件只有在窗体第一次被装入时发生,而load事件是在窗体每次被装 入时都有发生。 例:打开第三章formlife.vbp 例:打开第三章formlife.vbp 什么程序代码写在intialize或load事件程序? 什么程序代码写在intialize或load事件程序? 1)控件的初始化:几乎都是放在load事件程序中,因为控件会随着 )控件的初始化:几乎都是放在load事件程序中,因为控件会随着 窗体的卸载而一起被清除,所以每次被装入时都要进行初始化。 2)变量的初始化:放在initialize事件程序中居多,因为变量的内容 )变量的初始化:放在initialize事件程序中居多,因为变量的内容 光焕发不会随着窗体的卸载波而消失。当然,如果希望每次窗体被装 入时都有重新设置变量的内容,就要将变量的初始化放在load事件 入时都有重新设置变量的内容,就要将变量的初始化放在load事件 程序中。 如何禁止用户使用关闭按钮半闭窗体? 在unload事件程序中含有一个cancel参数,如果将这个参数设置为 unload事件程序中含有一个cancel参数,如果将这个参数设置为 true则窗体就不能关闭。 true则窗体就不能关闭。
3.5 以对象为核心的程序设计 在VB的程序设计中,对象起着最重要的角色,窗体是一个对象, VB的程序设计中,对象起着最重要的角色,窗体是一个对象, 每一个放置在窗体上控件也都是对象。由于VB是面向对象的程序 每一个放置在窗体上控件也都是对象。由于VB是面向对象的程序 设计语言,它的代码结构与对象有着很大关系,在VB中每一 设计语言,它的代码结构与对象有着很大关系,在VB中每一 个窗体和控件都有一些预先定义好了的事件。 例:命令按钮对象,当用户单击命令按钮时,命令按钮对象会产 生click事件。 click事件。
其实方法是对象内部的子程序,这种子程序的作用是要求对象执 行某件工作。 例如:很多控件都具有move方法,调用这个方法可让控件移动 例如:很多控件都具有move方法,调用这个方法可让控件移动 它的位置。 查阅“方法” 查阅“方法” 要了解某一种对象提供了哪些方法,可以打开该 对象的MSDN帮 对象的MSDN帮 助文件,再选取“方法” 助文件,再选取“方法”选。 3.6 常用事件在程序设计中应用 事件驱动模式是VB程序的主流,我们必须了解每一种对象会产哪 事件驱动模式是VB程序的主流,我们必须了解每一种对象会产哪 些事件,以及这些事件产生的时机。随着对象在特性上的差异, 可能产生的事件也会有的不同。下面先介绍一些常用事件,及在 程序设计中应用。 生与灭事件 事件 发生时机 initialize 窗体第一次被装入时 terminate 窗体最后一次被卸载时 load 窗体每一次被装入时 unload 窗体每一次被卸载时 queryunload 窗体每一次被卸载时
对象类型 定义对象变量时,可以直接指明对象的类型。 dim obj1 as commandbutton dim obj2 as textbox 定义了对象变量后,使用set语句为对象变量赋值。 定义了对象变量后,使用set语句为对象变量赋值。 Set obje=command1 obj1.caption=“打开” obj1.caption=“打开” 修改命令按钮的标题 obj1.fontbold=true 用户自定义类型 它类似于C语言中的“结构体” 它类似于C语言中的“结构体”类型的数据。 Type 类型名 元素名 as 类型 元素名 as 类型 元素名 as 类型 …… end type
条件真时退出循环 条件假时执行循环体
to 终值
[step步长] step步长]
例:(实验书第三章练习三)编写求一元二次方程根。(ch03\练习3.vbp) 例:(实验书第三章练习三)编写求一元二次方程根。(ch03\练习3.vbp) 注:format(numer,fmt) 注:format(numer,fmt) 功能:将数值型量转为字符型量。 Numer:为一个数值型 Numer:为一个数值型 量。 Fmt:为用户定义格式。 Fmt:为用户定义格式。 #:显示数字,不在前或后补0。 :显示数字,不在前或后补0 0:显示数字,在前或后补0 :显示数字,在前或后补0 . :小数点。 ,:千位符。 %:百分比。 例:x=2.33333 例:x=2.33333 format(x, “##.##”) ##.##” 结果为:2.33 结果为:2.33 字符串 例:求 1+2+3+…+100的和 (ch03\ex6.vbp) 1+2+3+…+100的和 (ch03\ 例:设计一个窗体打印九九乘法表 (ch03\ex7.vbp) (ch03\ 例:编写求1*1+2*2+3*3……+100*100的和。 例:编写求1*1+2*2+3*3……+100*100的和。 Vb常用函数:(见P67) Vb常用函数:(见P67)
3.3 字符串连接运算符 + & c=“abcd” + “ef” c=“abcd” ef” c=“abcd” & “ef” c=“abcd” ef” 这两式子的运算结果是相同。 但是,由于“ 号同时也是加法运算符,VB又支持变体型的变量, 但是,由于“+”号同时也是加法运算符,VB又支持变体型的变量, 所以将加号用做字符串连接运算符有时会引起混淆。因此,在进 行字符串连接时应该 选用“&”操作符而不是“+”操作符。 选用“ 操作符而不是“ 3.4 基本语句 赋值语句 变量名= 变量名=表达式 条件语句 1)if <条件> then 语句 <条件> 2)if <条件> then <条件> 语句组 endif
第三章 VBS的基本语法 VBS的基本语法 3.1 基本数据类型 数值型 integer long single double singledouble byte 字符串类型 string 日期类型 date 同时表示日期和时间 dim firstday as date firstday=#99/12/31# firstday=“99/12/31” firstday=“99/12/31” firstday=“22:30:50” firstday=“22:30:50”
<条件> <条件> then 语句组1 语句组1 T else 语句组2 语句组2 语句组1 endif (例:ch03 \ ex3.vbp) (例:ch03 4)if <条件1> then <条件1> 语句组1 语句组1 else if <条件2> then <条件2 语句组2 语句组2 T else 语句组3 语句组3 endif 语句组1 (例:ch03\ex4.vbp) 例:ch03\
3)if
条件
F 语句组2
条件1 T 语句组2
F F 语句组3
条件2
多分支语句 select case 变量或表达式 case 值1 语句组1 语句组1 case 值2 语句组2 语句组2 case 值3 语句组3 语句组3 …… case else 语句组n 语句组n end select (例:ch03\ex5.vbp) (例:ch03\ 变量或表达式:可以是整型或字符串表达式 值:是一组用逗号分隔枚举值。
等级 优 良 中 及格 不及格
标号1,标号2,……
循环语句 1)do while 条件 语句体 [exit do] 语句体 loop 2)do 语句体 [exit do] 语句体 loop while 条件 3)do until 条件 语句体 [exit do] 语句体 loop 4)for 循环变量=初值 循环变量= 语句体 [exit for] 语句体 next 循环变量
(例:编写一个分数等级转换表 分数 >=90 >=80 >=70 >=60 <=60 x = Val(Text1.Text) Select Case x \ 10 Case 10, 9 Text2.Text = "优" Case 8 Text2.Text = "良" Case 7 Text2.Text = "中" Case 6 Text2.Text = "及格" Case 0, 1, 2, 3, 4, 5 Text2.Text = "不及格" End Select •转向语句 gotoቤተ መጻሕፍቲ ባይዱ标号 on 表达式 goto
对程序而言,可以不处理这个事件,此时这个事件对程序便没有 什么作用。但是如果程序要处理这个事件,该如何进行?
因此,如果觉得某个对象的某种事件有进行处理的必要,则以 “该 对象的名称” 对象的名称”与“该事件的名称”定义这个事件程序,如下示: 该事件的名称” private sub 对象名_事件名() 对象名_ ‘在此编写希望被驱动执行的程序 end sub 将来该对象的这个事件发生时,其对应的事件程序会被驱动。以 后学习每一种对象时,需了解该对象会产生哪些事件和事件发生 时机,这样才能让用户与所编写的程序充分产生交互关系。 了解对象的特性 其实很多对象只要看它的名字,就可以了解它的基本特性。 例如:textbox 例如:textbox 同时亦可以通过了解对象的属性。 懂得控制对象 控制对象的方法不外乎以下两种: 1)设置对象属性 2)调用对象方法
使用static声明变量 使用static声明变量 static 变量名 as 数据类型 static a as integer 使用static声明变量为静态变量。它与dim声明的变量不同之处 使用static声明变量为静态变量。它与dim声明的变量不同之处 在于在执行一个过程结束时,过程中所用到的static变量的值会 在于在执行一个过程结束时,过程中所用到的static变量的值会 保留,下次再调用此过程时,变量的初值是上次调用结束时被子 保存留的值,而dim 保存留的值,而dim 声明的变量在过程结束时不保留,每次调用 时需要重新初始化。 3.3 运算符和表达式 算术运算符 + * / \(整除) mod ^ 关系运算符 = > >= < <= <> 逻辑运算符 not and or xor(逻辑异或) eqv(逻辑等于) xor(逻辑异或) eqv(逻辑等于)
例:定义一个employee(职工)类型,其中包括职工号、姓名、年龄。 例:定义一个employee(职工)类型,其中包括职工号、姓名、年龄。 Type employee empno as integer name as string*10 age as integer end type dim emp as emloyee 在后面的程序中我们可以用“变量.元素” 在后面的程序中我们可以用“变量.元素”这样的形式来引用各个成员。 emp.name=“张三” emp.name=“张三” emp.no=83001 emp.age=21 3.2 变量的声明 在VB中使用一个变量时,可不加任何声明而直接使用,叫做隐式声明。 VB中使用一个变量时,可不加任何声明而直接使用,叫做隐式声明。 使用这种方法虽简单,但却不利于程序调试,所以一般对于变量最好先 声明,后使用。设置方式: 在“工具”菜单中选“选项”,在对话框中选“编辑器”,在“要求变 工具”菜单中选“选项”,在对话框中选“编辑器”,在“ 旦声明” 旦声明”中选中。 dim 变量名 as 数据类型 dim name as string dim sum(3) as integer
currency
逻辑类型 boolean 逻辑型变量的取值范围只能是true(-1)或false(0)。 逻辑型变量的取值范围只能是true(-1)或false(0)。 Dim switch as boolean switch=true switch=switch=-1 这两条赋值语句功能是相同。 这两条赋值语句功能是相同。 变体类型 variant 变体型变量是一种十分灵活的变量,可以保存各种类型 的数据。 在定义变量中没有明确指明数据类型时,变量缺省时定义为变体 类型。 dim x dim y as variant 上述两个语句都是定义一个变体变量。
Initialize与load事件区别 Initialize与load事件区别 同样都是发生在窗体被装入时,两者很容易混淆,实际上intialize事 同样都是发生在窗体被装入时,两者很容易混淆,实际上intialize事 件只有在窗体第一次被装入时发生,而load事件是在窗体每次被装 件只有在窗体第一次被装入时发生,而load事件是在窗体每次被装 入时都有发生。 例:打开第三章formlife.vbp 例:打开第三章formlife.vbp 什么程序代码写在intialize或load事件程序? 什么程序代码写在intialize或load事件程序? 1)控件的初始化:几乎都是放在load事件程序中,因为控件会随着 )控件的初始化:几乎都是放在load事件程序中,因为控件会随着 窗体的卸载而一起被清除,所以每次被装入时都要进行初始化。 2)变量的初始化:放在initialize事件程序中居多,因为变量的内容 )变量的初始化:放在initialize事件程序中居多,因为变量的内容 光焕发不会随着窗体的卸载波而消失。当然,如果希望每次窗体被装 入时都有重新设置变量的内容,就要将变量的初始化放在load事件 入时都有重新设置变量的内容,就要将变量的初始化放在load事件 程序中。 如何禁止用户使用关闭按钮半闭窗体? 在unload事件程序中含有一个cancel参数,如果将这个参数设置为 unload事件程序中含有一个cancel参数,如果将这个参数设置为 true则窗体就不能关闭。 true则窗体就不能关闭。
3.5 以对象为核心的程序设计 在VB的程序设计中,对象起着最重要的角色,窗体是一个对象, VB的程序设计中,对象起着最重要的角色,窗体是一个对象, 每一个放置在窗体上控件也都是对象。由于VB是面向对象的程序 每一个放置在窗体上控件也都是对象。由于VB是面向对象的程序 设计语言,它的代码结构与对象有着很大关系,在VB中每一 设计语言,它的代码结构与对象有着很大关系,在VB中每一 个窗体和控件都有一些预先定义好了的事件。 例:命令按钮对象,当用户单击命令按钮时,命令按钮对象会产 生click事件。 click事件。
其实方法是对象内部的子程序,这种子程序的作用是要求对象执 行某件工作。 例如:很多控件都具有move方法,调用这个方法可让控件移动 例如:很多控件都具有move方法,调用这个方法可让控件移动 它的位置。 查阅“方法” 查阅“方法” 要了解某一种对象提供了哪些方法,可以打开该 对象的MSDN帮 对象的MSDN帮 助文件,再选取“方法” 助文件,再选取“方法”选。 3.6 常用事件在程序设计中应用 事件驱动模式是VB程序的主流,我们必须了解每一种对象会产哪 事件驱动模式是VB程序的主流,我们必须了解每一种对象会产哪 些事件,以及这些事件产生的时机。随着对象在特性上的差异, 可能产生的事件也会有的不同。下面先介绍一些常用事件,及在 程序设计中应用。 生与灭事件 事件 发生时机 initialize 窗体第一次被装入时 terminate 窗体最后一次被卸载时 load 窗体每一次被装入时 unload 窗体每一次被卸载时 queryunload 窗体每一次被卸载时
对象类型 定义对象变量时,可以直接指明对象的类型。 dim obj1 as commandbutton dim obj2 as textbox 定义了对象变量后,使用set语句为对象变量赋值。 定义了对象变量后,使用set语句为对象变量赋值。 Set obje=command1 obj1.caption=“打开” obj1.caption=“打开” 修改命令按钮的标题 obj1.fontbold=true 用户自定义类型 它类似于C语言中的“结构体” 它类似于C语言中的“结构体”类型的数据。 Type 类型名 元素名 as 类型 元素名 as 类型 元素名 as 类型 …… end type
条件真时退出循环 条件假时执行循环体
to 终值
[step步长] step步长]
例:(实验书第三章练习三)编写求一元二次方程根。(ch03\练习3.vbp) 例:(实验书第三章练习三)编写求一元二次方程根。(ch03\练习3.vbp) 注:format(numer,fmt) 注:format(numer,fmt) 功能:将数值型量转为字符型量。 Numer:为一个数值型 Numer:为一个数值型 量。 Fmt:为用户定义格式。 Fmt:为用户定义格式。 #:显示数字,不在前或后补0。 :显示数字,不在前或后补0 0:显示数字,在前或后补0 :显示数字,在前或后补0 . :小数点。 ,:千位符。 %:百分比。 例:x=2.33333 例:x=2.33333 format(x, “##.##”) ##.##” 结果为:2.33 结果为:2.33 字符串 例:求 1+2+3+…+100的和 (ch03\ex6.vbp) 1+2+3+…+100的和 (ch03\ 例:设计一个窗体打印九九乘法表 (ch03\ex7.vbp) (ch03\ 例:编写求1*1+2*2+3*3……+100*100的和。 例:编写求1*1+2*2+3*3……+100*100的和。 Vb常用函数:(见P67) Vb常用函数:(见P67)
3.3 字符串连接运算符 + & c=“abcd” + “ef” c=“abcd” ef” c=“abcd” & “ef” c=“abcd” ef” 这两式子的运算结果是相同。 但是,由于“ 号同时也是加法运算符,VB又支持变体型的变量, 但是,由于“+”号同时也是加法运算符,VB又支持变体型的变量, 所以将加号用做字符串连接运算符有时会引起混淆。因此,在进 行字符串连接时应该 选用“&”操作符而不是“+”操作符。 选用“ 操作符而不是“ 3.4 基本语句 赋值语句 变量名= 变量名=表达式 条件语句 1)if <条件> then 语句 <条件> 2)if <条件> then <条件> 语句组 endif
第三章 VBS的基本语法 VBS的基本语法 3.1 基本数据类型 数值型 integer long single double singledouble byte 字符串类型 string 日期类型 date 同时表示日期和时间 dim firstday as date firstday=#99/12/31# firstday=“99/12/31” firstday=“99/12/31” firstday=“22:30:50” firstday=“22:30:50”
<条件> <条件> then 语句组1 语句组1 T else 语句组2 语句组2 语句组1 endif (例:ch03 \ ex3.vbp) (例:ch03 4)if <条件1> then <条件1> 语句组1 语句组1 else if <条件2> then <条件2 语句组2 语句组2 T else 语句组3 语句组3 endif 语句组1 (例:ch03\ex4.vbp) 例:ch03\
3)if
条件
F 语句组2
条件1 T 语句组2
F F 语句组3
条件2
多分支语句 select case 变量或表达式 case 值1 语句组1 语句组1 case 值2 语句组2 语句组2 case 值3 语句组3 语句组3 …… case else 语句组n 语句组n end select (例:ch03\ex5.vbp) (例:ch03\ 变量或表达式:可以是整型或字符串表达式 值:是一组用逗号分隔枚举值。
等级 优 良 中 及格 不及格
标号1,标号2,……
循环语句 1)do while 条件 语句体 [exit do] 语句体 loop 2)do 语句体 [exit do] 语句体 loop while 条件 3)do until 条件 语句体 [exit do] 语句体 loop 4)for 循环变量=初值 循环变量= 语句体 [exit for] 语句体 next 循环变量
(例:编写一个分数等级转换表 分数 >=90 >=80 >=70 >=60 <=60 x = Val(Text1.Text) Select Case x \ 10 Case 10, 9 Text2.Text = "优" Case 8 Text2.Text = "良" Case 7 Text2.Text = "中" Case 6 Text2.Text = "及格" Case 0, 1, 2, 3, 4, 5 Text2.Text = "不及格" End Select •转向语句 gotoቤተ መጻሕፍቲ ባይዱ标号 on 表达式 goto