VB程序设计语言 主讲教师:王 杨
顺序文件 1、文件打开 Open 文件名 [For模式] As [#]文件号 For Input :顺序文件读 For Output :顺序文件替换写 For Append :顺序文件追加写 文件号:1~511
编写适当的程序,使得三个文件系统控件可以同步变化,即当驱动器列表框中显示的内容发生变化时,目录列表框和文件列表框中显示的内容同时发生变化。单击文件列表框时,将选择的文件名显示在标签中。
窗体中若有其他可获得焦点的对象,则需设置窗体的KeyPreview属性为True,窗体才会响应KeyPress事件 键盘与鼠标事件过程 Sub 对象名_KeyPress(KeyAscii As Integer) …… End Sub 窗体中若有其他可获得焦点的对象,则需设置窗体的KeyPreview属性为True,窗体才会响应KeyPress事件
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
鼠标事件 一、鼠标事件 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题
二、鼠标位置 鼠标位置由x、y参数确定,x、y不需要给出具体的数值,其值随鼠标光标在窗体或控件上的移动而变化,(x、y)通常指接收鼠标事件的窗体或控件上的坐标。 三、鼠标键状态 键 默认 左键 右键 中键 Button 1 2 4
思考 例: Private Sub Form_Load() Dim n% n= 10 End Sub Private Sub Form_Click() Print “n=“;n 程序运行后单击窗体,其输出结果是什么?
变量的作用域 1 局部变量 (过程变量) 2 模块变量(窗体/标准模块) 3 全局变量
静态局部变量 窗体模块变量 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
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
例 题 在窗体上画一个名称为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) 4 2 C) 12 30 D) 4 6 B) 12 18
例 题 在窗体上画一个名称为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) 15 16 C) 15 15 D) 5 6 B) 15 6
过程的作用域 窗体/模块级 Private 全局级 Public 应用程序 .vbp文件 窗体模块 .frm文件 标准模块 .bas文件 事件过程(Sub) 子过程(Sub) 函数过程(Function) 子过程(Sub) 函数过程(Function)
窗体模块 每个窗体对应一个窗体模块。 窗体模块包含三部分 通用声明部分 事件过程部分 自定义过程部分
标准模块 在多个窗体的工程中,多个窗体需要调用同一个自定义过 程,为了提高模块的独立性,可以建立一个标准模块,在 标准模块中建立该过程。 标准模块文件的格式为.bas 在标准模块中可定义模块级变量和全局级变量,定义自定 义数据类型以及自定义过程
直线和形状 1 直线 Line 2 形状 Shape
直线 Line bordercolor borderstyle boderwidth X1,y1,x2,y2
形状 shape Fillstyle Fillcolor shape backcolor
算法-有序数列的插入 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
删除 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
Thank You !