Version 3.0
事件和事件处理第二章
2
回顾
可视化程序设计
– 字符界面的缺点和图形用户界面的需求
– 可视化程序设计的基本思想
– 使用 VB开发 Windows应用程序的优点
介绍 Visual Basic集成开发环境
使用 Visual Basic 提供的各种编程控件
在 Visual Basic 中编译和执行程序
3
目标
理解 Windows 应用程序的事件驱动设计
使用常用的控件,如标签、文本框和命令按钮
编写事件驱动程序的代码
在运行时更改控件的属性
使用 MSGBOX 系统对话框进行用户交互
4
事件驱动编程
Visual Basic 程序是事件驱动的
每个对象都有它自己的事件集
在事件驱动应用程序中,代码不会遵循固定的执行路径,而是由操作来决定
响应事件时执行的代码称为事件处理程序
5
事件驱动编程的优点
可以为用户提供即时反馈
使程序设计更贴近用户的操作需要
使程序设计的目的性更强
减少程序的复杂性
6
Visual Basic 的应用程序事件
可分为用户事件和系统事件
Private Sub Command1_Click ()
...
‘要执行的语句
...
End Sub
Private Sub Command1_DragDrop (Source As Control,
X As Single,Y As Single)
...
‘要执行的语句
...
End Sub
不带参数的事件带参数的事件
7
用户事件
由用户执行的某些操作所触发的事件称为用户事件 。 例如,简单的用户操作:
– 单击窗体上的命令按钮
– 在文本框中输入数据
– 在窗体上任意位置单击鼠标
– 在窗体上拖动鼠标
(在 VB环境中进行演示)
8
系统事件
由其他事件或 Windows操作系统触发的事件称为系统事件,例如,Timer 事件就是一个系统事件的例子。
系统事件 无需任何用户干预
9
Visual Basic 事件的封装
Visual Basic 事件是针对操作和与之相关联的每个控件而单独进行编码的
仅当用户 触发特定操作时事件才会发生
必须存在当事件发生时可以执行的代码
直到事件发生并引起响应时,用户才意识到存在与该事件的发生相关联的代码
10
窗体事件事件 说明
Initialize 用于初始化应用程序
Load 执行显示窗体前所需的操作 ( 示例 )
Unload 卸载窗体时,将发生此事件
Click 除标题栏之外,在窗体上的空白区或窗体上的无效控件上单击鼠标时,将触发此事件
DblClick 除标标题栏之外,在窗体上的空白区或窗体上的无效控件上双击鼠标时,将触发此事件
Resize 窗体的窗口尺寸改变后,第一次显示该窗体时将发生此事件
11
窗体事件 – Load示例
Private Sub Form_Load()
Text1.text=”大家好,
End Sub
返 回
在加载窗体时,名称为,Text1”的文本框会显示“大家好”。
12
控件事件事件 说明
Click 每次单击控件时发生
KeyPress 按下并释放任何键盘键时发生
MouseDown 按下鼠标按钮不松开时,将发生此事件
MouseMove 在控件上移动鼠标时,将发生此事件
13
Visual Basic 中的应用程序编码
Visual Basic 中的应用程序编码时,需要使用以下三个主要特征:
– 属性:控件的特性
– 方法:控件所提供的某种能执行的操作
– 事件:发生在用户和界面控件之间的交互 。
14
在运行时设置属性
通过编写应用程序代码来设置控件的属性。例如,当用户在名称为,Text1”的文本框中输入,Q”时,禁用命令按钮。
Private Sub Text1_LostFocus()
If text1.text="Q" Then
command1.enabled=false
End If
End Sub
(在 VB环境中进行演示)
15
在运行时调用方法
通过在事件过程中编写应用程序代码,
还可以调用各种控件的方法,以执行某种操作。( 示例 )
16
在运行时调用方法 – 示例例如,要在按钮 Command1点击时,将 Form1
窗体隐藏并加载 Form2。
Private Sub Command1_Click()
‘加载 Form2
Load Form2
‘隐藏 Form1
Form1.Hide
‘显示 Form2
Form2.Show
End Sub
(在 VB环境中进行演示)
17
Visual Basic及窗体的常用方法
VB提供的一些方法
– Load,加载某个组件
– UnLoad,卸载某个组件
窗体的常用方法
– Hide,隐藏窗体自身,但不被卸载
– Show,使窗体在屏幕上显示
18
MsgBox 函数
MsgBox 函数用于在用户与应用程序之间进行交互。
MsgBox 函数显示一个带有消息的对话框并等待用户单击某个按钮来关闭它。
用户点击按钮后,会返回一个值指示用户单击的按钮。
19
MsgBox 函数语法 5-1
MsgBox ( [提示信息 ],[标志和按钮 ],[对话框的标题信息 ] )
标题信息提示信息标志和按钮
20
MsgBox 函数语法 5-2
消息框中“标志和按钮”参数中关于按钮类型和数目的值:
按钮值常数 值 说明
vbOKOnly 0 只显示“确定”按钮
vbOKCancel 1 显示“确定”和“取消”按钮
vbAbortRetryIgnore 2 显示,放弃”、“重试”和“忽略”
按钮
vbYesNoCancel 3 显示“是”、“否”和“取消”按钮
vbYesNo 4 显示“是”和“否”按钮
vbRetryCanel 5 显示“重试”和“取消”按钮
21
MsgBox 函数语法 5-3
消息框中“标志和按钮”参数中关于描述图标样式的值:
图标样式常数 值 说明
vbCritical 16 显示 临界信息图标。
vbQuestion 32 显示警告查询图标。
vbExclamation 48 显示警告消息图标。
vbInformation 64 显示信息消息图标。
22
MsgBox 函数语法 5-4
消息框中“标志和按钮”参数中关于确定默认按钮的值:
默认按钮常数 值 说明
vbDefaultButton1 0 第一个按钮为默认按钮。
vbDefaultButton2 256 第二个按钮为默认按钮。
vbDefaultButton3 512 第三个按钮为默认按钮。
vbDefaultButton4 768 第四个按钮为默认按钮。
23
MsgBox 函数语法 5-5
消息对话框的返回值常数 值 按钮
vbOK 1,确定”按钮
vbCancel 2,取消”按钮
vbAbort 3,放弃”
vbRetry 4,重试” 按钮
vbIgnore 5,取消”按钮
vbYes 6,是” 按钮
vbNo 7,否” 按钮
24
MsgBox 函数 – 示例
(在 VB环境中进行演示)
Private Sub Form_Load()
Dim strResult As String
strResult = MsgBox(" 确 实 要 删 除 数 据 吗? ",
vbOKCancel + vbQuestion + vbDefaultButton2,"删除数据 ")
MsgBox ("选中的结果是," + strResult)
End Sub
25
示例:事件编程
在 VB环境中演示本章教材最后一部分的,示例,
26
总结
应用程序事件
– 事件
– Visual Basic事件编码机制
– 用户事件和系统事件
Visual Basic中窗体和控件事件
事件处理程序代码的编写
使用 MsgBox函数
事件和事件处理第二章
2
回顾
可视化程序设计
– 字符界面的缺点和图形用户界面的需求
– 可视化程序设计的基本思想
– 使用 VB开发 Windows应用程序的优点
介绍 Visual Basic集成开发环境
使用 Visual Basic 提供的各种编程控件
在 Visual Basic 中编译和执行程序
3
目标
理解 Windows 应用程序的事件驱动设计
使用常用的控件,如标签、文本框和命令按钮
编写事件驱动程序的代码
在运行时更改控件的属性
使用 MSGBOX 系统对话框进行用户交互
4
事件驱动编程
Visual Basic 程序是事件驱动的
每个对象都有它自己的事件集
在事件驱动应用程序中,代码不会遵循固定的执行路径,而是由操作来决定
响应事件时执行的代码称为事件处理程序
5
事件驱动编程的优点
可以为用户提供即时反馈
使程序设计更贴近用户的操作需要
使程序设计的目的性更强
减少程序的复杂性
6
Visual Basic 的应用程序事件
可分为用户事件和系统事件
Private Sub Command1_Click ()
...
‘要执行的语句
...
End Sub
Private Sub Command1_DragDrop (Source As Control,
X As Single,Y As Single)
...
‘要执行的语句
...
End Sub
不带参数的事件带参数的事件
7
用户事件
由用户执行的某些操作所触发的事件称为用户事件 。 例如,简单的用户操作:
– 单击窗体上的命令按钮
– 在文本框中输入数据
– 在窗体上任意位置单击鼠标
– 在窗体上拖动鼠标
(在 VB环境中进行演示)
8
系统事件
由其他事件或 Windows操作系统触发的事件称为系统事件,例如,Timer 事件就是一个系统事件的例子。
系统事件 无需任何用户干预
9
Visual Basic 事件的封装
Visual Basic 事件是针对操作和与之相关联的每个控件而单独进行编码的
仅当用户 触发特定操作时事件才会发生
必须存在当事件发生时可以执行的代码
直到事件发生并引起响应时,用户才意识到存在与该事件的发生相关联的代码
10
窗体事件事件 说明
Initialize 用于初始化应用程序
Load 执行显示窗体前所需的操作 ( 示例 )
Unload 卸载窗体时,将发生此事件
Click 除标题栏之外,在窗体上的空白区或窗体上的无效控件上单击鼠标时,将触发此事件
DblClick 除标标题栏之外,在窗体上的空白区或窗体上的无效控件上双击鼠标时,将触发此事件
Resize 窗体的窗口尺寸改变后,第一次显示该窗体时将发生此事件
11
窗体事件 – Load示例
Private Sub Form_Load()
Text1.text=”大家好,
End Sub
返 回
在加载窗体时,名称为,Text1”的文本框会显示“大家好”。
12
控件事件事件 说明
Click 每次单击控件时发生
KeyPress 按下并释放任何键盘键时发生
MouseDown 按下鼠标按钮不松开时,将发生此事件
MouseMove 在控件上移动鼠标时,将发生此事件
13
Visual Basic 中的应用程序编码
Visual Basic 中的应用程序编码时,需要使用以下三个主要特征:
– 属性:控件的特性
– 方法:控件所提供的某种能执行的操作
– 事件:发生在用户和界面控件之间的交互 。
14
在运行时设置属性
通过编写应用程序代码来设置控件的属性。例如,当用户在名称为,Text1”的文本框中输入,Q”时,禁用命令按钮。
Private Sub Text1_LostFocus()
If text1.text="Q" Then
command1.enabled=false
End If
End Sub
(在 VB环境中进行演示)
15
在运行时调用方法
通过在事件过程中编写应用程序代码,
还可以调用各种控件的方法,以执行某种操作。( 示例 )
16
在运行时调用方法 – 示例例如,要在按钮 Command1点击时,将 Form1
窗体隐藏并加载 Form2。
Private Sub Command1_Click()
‘加载 Form2
Load Form2
‘隐藏 Form1
Form1.Hide
‘显示 Form2
Form2.Show
End Sub
(在 VB环境中进行演示)
17
Visual Basic及窗体的常用方法
VB提供的一些方法
– Load,加载某个组件
– UnLoad,卸载某个组件
窗体的常用方法
– Hide,隐藏窗体自身,但不被卸载
– Show,使窗体在屏幕上显示
18
MsgBox 函数
MsgBox 函数用于在用户与应用程序之间进行交互。
MsgBox 函数显示一个带有消息的对话框并等待用户单击某个按钮来关闭它。
用户点击按钮后,会返回一个值指示用户单击的按钮。
19
MsgBox 函数语法 5-1
MsgBox ( [提示信息 ],[标志和按钮 ],[对话框的标题信息 ] )
标题信息提示信息标志和按钮
20
MsgBox 函数语法 5-2
消息框中“标志和按钮”参数中关于按钮类型和数目的值:
按钮值常数 值 说明
vbOKOnly 0 只显示“确定”按钮
vbOKCancel 1 显示“确定”和“取消”按钮
vbAbortRetryIgnore 2 显示,放弃”、“重试”和“忽略”
按钮
vbYesNoCancel 3 显示“是”、“否”和“取消”按钮
vbYesNo 4 显示“是”和“否”按钮
vbRetryCanel 5 显示“重试”和“取消”按钮
21
MsgBox 函数语法 5-3
消息框中“标志和按钮”参数中关于描述图标样式的值:
图标样式常数 值 说明
vbCritical 16 显示 临界信息图标。
vbQuestion 32 显示警告查询图标。
vbExclamation 48 显示警告消息图标。
vbInformation 64 显示信息消息图标。
22
MsgBox 函数语法 5-4
消息框中“标志和按钮”参数中关于确定默认按钮的值:
默认按钮常数 值 说明
vbDefaultButton1 0 第一个按钮为默认按钮。
vbDefaultButton2 256 第二个按钮为默认按钮。
vbDefaultButton3 512 第三个按钮为默认按钮。
vbDefaultButton4 768 第四个按钮为默认按钮。
23
MsgBox 函数语法 5-5
消息对话框的返回值常数 值 按钮
vbOK 1,确定”按钮
vbCancel 2,取消”按钮
vbAbort 3,放弃”
vbRetry 4,重试” 按钮
vbIgnore 5,取消”按钮
vbYes 6,是” 按钮
vbNo 7,否” 按钮
24
MsgBox 函数 – 示例
(在 VB环境中进行演示)
Private Sub Form_Load()
Dim strResult As String
strResult = MsgBox(" 确 实 要 删 除 数 据 吗? ",
vbOKCancel + vbQuestion + vbDefaultButton2,"删除数据 ")
MsgBox ("选中的结果是," + strResult)
End Sub
25
示例:事件编程
在 VB环境中演示本章教材最后一部分的,示例,
26
总结
应用程序事件
– 事件
– Visual Basic事件编码机制
– 用户事件和系统事件
Visual Basic中窗体和控件事件
事件处理程序代码的编写
使用 MsgBox函数