VBA学习笔记(5)

2020-04-16 09:53

在下列情况下,KeyDown 和 KeyUp 事件不发生:

? ?

在带有命令按钮(其 Default 属性为 True)的窗体上按 Enter。 在带有命令按钮(其 Cancel 属性为 True)的窗体上按 Esc。

在按下或发送一个 ANSI 键时,KeyDown 和 KeyPress 事件发生。KeyUp 事件发生在按下或发送该键所引起的任何控件事件之后。若一次击键导致了焦点从一个控件移到另一个控件,则对第一个控件发生 KeyDown 事件,对第二控件发生 KeyPress 和 KeyUp 事件。

和键盘相关的事件序列为:

1. KeyDown 2. KeyPress 3. KeyUp

注意 KeyDown 和 KeyUp 事件仅用于窗体上的窗体和控件。要解释 ANSI 字符或找出与被按下的键相对应的 ANSI 字符,用 KeyPress 事件。

二十四、KeyPress 事件

当用户按下一个 ANSI 键时该事件发生。 语法

Private Sub object_KeyPress( ByVal KeyANSI As MSForms.ReturnInteger) KeyPress 事件的语法有以下几个成分:

成分

说明

43

object 必需。一个有效的对象。

KeyANSI 必需。整数值,代表标准的数字 ANSI 键代码。

说明

当用户按下一个键,在运行的窗体上产生可键入字符(一个 ANSI 键),而该窗体或该窗体上的某个控件具有焦点时,KeyPress 事件发生。该事件可以发生在该键被释放之前,也可以发生在该键被释放之后。当用宏的 SendKey 操作或用 Visual Basic 的 SendKeys 语句,将一个 ANSI 键操作发送到窗体或控件的时候,这个事件也会发生。 KeyPress 事件发生在下列任意键被按下时:

? ? ? ? ?

任何可打印的键盘字符。

Ctrl 与标准字母表中字符的组合。 Ctrl 与任何特殊字符的组合。 Backspace。 Esc。

在下面情况下,KeyPress 事件不发生:

? ? ? ?

按下 Tab。 按下 Enter。 按任何方向键。

引起焦点在控件之间移动的击键操作。

注意 Backspace 是 ANSI 字符集的一部分,而 Delete 不是。在一个控件中用 Backspace 删除一个字符将引发 KeyPress 事件;而用 Delete 删除一个字符则不引发 KeyPress 事件。

按住产生 ANSI 键代码的键不放,KeyDown 和 KeyPress 事件交替重复发生。当释放此键,KeyUp 事件发生。具有焦点的窗体或控件接收所有的击键操作。只有没有控件的窗体,或者其所有可视控件都失效的窗体才可能有焦点。

KeyPress 事件的默认操作是处理被按下键所对应的事件代码。KeyANSI 指出了与所按下的键或组合键相对应的 ANSI 字符。KeyPress 事件把每个字符的大写和小写解释为互相独立的键码,因而作为两个独立的字符处理。

44

为了响应键盘的物理状态,或处理 KeyPress 事件无法辨认的击键操作,比如功能键、翻阅键或这些键与键盘组合键(Alt、Shift 或 Ctrl)的任意组合,可使用 KeyDown 和 KeyUp 事件过程。

和键盘相关的事件序列有:

1. KeyDown 2. KeyPress 3. KeyUp

二十五、MouseDown 和 MouseUp 事件

用户单击鼠标按键时发生。用户按下鼠标按键时发生 MouseDown 事件;用户释放鼠标按键时发生 MouseUp 事件。 语法

对于多页和 TabStrip

Private Sub object_MouseDown( index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

Private Sub object_MouseUp( index As Long, ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

对于其他控件

Private Sub object_MouseDown( ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single)

Private Sub object_MouseUp( ByVal Button As fmButton, ByVal Shift As fmShiftState, ByVal X As Single, ByVal Y As Single) MouseDown 和 MouseUp 事件的语法包含以下成分:

45

成分 object index Button Shift X, Y

必需。一个有效的对象。

说明

必需。发生特定事件的多页和 TabStrip 中的页索引或标签索引。 必需。标识引起该事件的鼠标按键的整数值。 必需。规定 Shift、Ctrl 和 Alt 的状态。

必需。窗体、框架或页的位置的横坐标与纵坐标,以磅为单位,分别从左边和顶边开始测量。

设置

Button 的设置如下:

常量 fmButtonLeft fmButtonRight

1 2 值

按下左键。 按下右键。 按下中键。

说明

fmButtonMiddle 4

Shift 的设置如下:

值 1 2 3 4 5 6 7

按下 Shift。 按下 Ctrl。

同时按下 Shift 和 Ctrl。 按下 Alt。

同时按下 Alt 和 Shift。 同时按下 Alt 和 Ctrl。 同时按下 Alt 、Shift 和 Ctrl。

说明

用于标识键盘组合键的常量:

46

常量 值 说明

检测 Shift 的标记。 检测 Ctrl 的标记。 检测 Alt 的标记。

fmShiftMask 1 fmCtrlMask 2 fmAltMask

4

说明

对于多页,MouseDown 事件发生在用户在控件上按下鼠标按键的时候。

对于 TabStrip,索引参数标识用户单击的标签。索引为 -1 时,表示用户没有单击标签。例如,如果控件的右上角没有标签,单击右上角会将索引值置为 -1。

对于窗体,在空白区、记录选择器或滚动条上按下和释放鼠标按键会产生 MouseDown 和 MouseUp 事件。

与鼠标有关的事件序列:

1. MouseDown 2. MouseUp 3. Click 4. DblClick 5. MouseUp

MouseDown 或者 MouseUp 事件过程规定了按下或释放鼠标按键时应执行的动作。

MouseDown 和 MouseUp 事件能够区别鼠标的左、右、中按钮。也可以为使用 Shift、Ctrl 和 Alt 键盘组合键的鼠标—键盘组合编写代码。

如果在鼠标指针在窗体或控件上时按下鼠标按键,该对象“捕捉”鼠标并接收所有的鼠标事件,直到并包含最后的 MouseUp 事件。这意味着鼠标事件返回的鼠标指针的 X,Y 坐标不会总在接收这些事件的对象的边界之内。

如果鼠标按键被连续按下,捕捉鼠标的对象接收所有连续的鼠标事件,直到所有的按键被释放。

用 Shift 参数标识在 MouseDown 或 MouseUp 事件发生时 Shift、Ctrl 和 Alt 的状态。例如,如果 Ctrl 和 Alt 被同时按下,则 Shift 的值为 6。

二十六、MouseMove 事件

47


VBA学习笔记(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:实用MAPGIS操作手册2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: