Download presentation
Presentation is loading. Please wait.
1
VB程序设计语言 主讲教师:王 杨
2
顺序文件 1、文件打开 Open 文件名 [For模式] As [#]文件号 For Input :顺序文件读
For Output :顺序文件替换写 For Append :顺序文件追加写 文件号:1~511
3
编写适当的程序,使得三个文件系统控件可以同步变化,即当驱动器列表框中显示的内容发生变化时,目录列表框和文件列表框中显示的内容同时发生变化。单击文件列表框时,将选择的文件名显示在标签中。
4
窗体中若有其他可获得焦点的对象,则需设置窗体的KeyPreview属性为True,窗体才会响应KeyPress事件
键盘与鼠标事件过程 Sub 对象名_KeyPress(KeyAscii As Integer) …… End Sub 窗体中若有其他可获得焦点的对象,则需设置窗体的KeyPreview属性为True,窗体才会响应KeyPress事件
5
KeyDown和KeyUp事件 …… End Sub
Sub 对象名_KeyDown(KeyCode As Integer, Shift As Integer) …… End Sub (1)KeyCode参数 当按下键盘上的某个按键时,此参数反应该键的键盘编码而不是其ASCII码。具体为:大键盘上的字母键,返回的是对应大写字母的ASCII值;有上、下档字符的键,返回的是下档字符的ASCII值。同时,大、小键盘的数字键KeyCode值不同。 (2)Shift参数 它是一个整数,包括Shift、Ctrl和Alt的状态。默认为0,按下Shift时取值加1;按下Ctrl时取值加2;按下Alt时取值加4
6
鼠标事件 一、鼠标事件 Sub 对象名_鼠标事件(Button As Integer, _
Shift As Integer,x As Single,y As Single) 压下鼠标键事件过程 MouseDown 松开鼠标键事件过程 MouseUp 移动鼠标光标事件过程 MouseMove 1)Button 为按下的鼠标键。 2)Shift Shift、Ctrl、Alt键的状态。 3)x、y 鼠标光标的当前位置坐标。 第48套第3题
7
二、鼠标位置 鼠标位置由x、y参数确定,x、y不需要给出具体的数值,其值随鼠标光标在窗体或控件上的移动而变化,(x、y)通常指接收鼠标事件的窗体或控件上的坐标。 三、鼠标键状态 键 默认 左键 右键 中键 Button 1 2 4
8
思考 例: Private Sub Form_Load() Dim n% n= 10 End Sub
Private Sub Form_Click() Print “n=“;n 程序运行后单击窗体,其输出结果是什么?
9
变量的作用域 1 局部变量 (过程变量) 2 模块变量(窗体/标准模块) 3 全局变量
10
静态局部变量 窗体模块变量 Private Sub Form_Click() Dim n As Integer
n = n + 1 Print n & "次" End Sub Dim n As Integer Private Sub Form_Click() n = n + 1 Print n & "次" End Sub 窗体模块变量 Static 静态局部变量 Private Sub Form_Click() Static n As Integer n = n + 1 Print n & "次" End Sub
11
1 局部变量 2 模块变量(窗体/标准模块) 3 全局变量
(过程变量) 2 模块变量(窗体/标准模块) 3 全局变量 Dim n as integer Private Sub Form_Load() Dim n% n= 10 End Sub Private Sub From_Click() Print “n=“;n 程序运行后单击窗体,其输出结果是什么? 位置 :过程内部 作用域:过程内部 关键字:Dim Static 位置 :模块的通用处 作用域:模块的任何过程访问 关键字:Dim Private 位置:标准模块通用处 作用域:整个应用程序 关键字:Public Global
12
例 题 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Static x As Integer Cls For i=1 To 2 y=y+x x=x+2 Next Print x,y End Sub 程序运行后,连续三次单击Command1按钮后,窗体上显示的是 A) C) D) 4 6 B) 12 18
13
例 题 在窗体上画一个名称为Commandl的命令按钮,然后编写如下程序: Private Sub Command1_Click() Static X As Integer Static Y As Integer Cls Y=1 Y=Y+5 X=5+X Print X,Y End Sub 程序运行时,三次单击命令按钮Commandl后,窗体上显示的结果为 A) C) D) 5 6 B) 15 6
14
过程的作用域 窗体/模块级 Private 全局级 Public 应用程序 .vbp文件 窗体模块 .frm文件 标准模块 .bas文件
事件过程(Sub) 子过程(Sub) 函数过程(Function) 子过程(Sub) 函数过程(Function)
15
窗体模块 每个窗体对应一个窗体模块。 窗体模块包含三部分 通用声明部分 事件过程部分 自定义过程部分
16
标准模块 在多个窗体的工程中,多个窗体需要调用同一个自定义过 程,为了提高模块的独立性,可以建立一个标准模块,在 标准模块中建立该过程。
标准模块文件的格式为.bas 在标准模块中可定义模块级变量和全局级变量,定义自定 义数据类型以及自定义过程
17
直线和形状 1 直线 Line 2 形状 Shape
18
直线 Line bordercolor borderstyle boderwidth X1,y1,x2,y2
19
形状 shape Fillstyle Fillcolor shape backcolor
20
算法-有序数列的插入 8 11 13 27 38 45 49 65 76 97 Dim a(1 to 11) as integer K=val(inputbox(“请输入”)) For i = 1 to 10 if k>a(i) then exit for Next i For j = 10 to I step -1 a(j+1)=a(j) Next j a(i)=k 55 k
21
删除 1 4 6 7 10 13 16 19 22 25 k K=val(inputbox(“请输入”))
For i = 1 to 10 if k=a(i) then exit for Next i For j= i to 9 a(j)=a(j+1) Next j
22
Thank You !
Similar presentations