|
楼主 |
发表于 2023-7-6 16:40
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
9、 Error:错误。在控件检测到错误且无法将该错误信息返回到调用程序时触发。
语法:Private Sub object_Error(ByVal Number As Integer, ByVal Description As MSForms.ReturnString, _
ByVal SCode As Long, ByVal Source As String, ByVal HelpFile As String, _
ByVal HelpContext As Long, ByVal CancelDisplay As MSForms.ReturnBoolean)
参数:object 必填 有效的对象
Number 必填 指定控件用于标识该错误的唯一值。
Description 必填 该错误的文字描述。
SCode 必填 指定该错误的 OLE 状态代码。 低顺序 16 比特指定与 Number 参数完全相同的值。
Source 必填 标识启动事件的控件的字符串。
HelpFile 必填 指定描述该错误的帮助文件的完全限定路径名。
HelpContext 必填 指定包含该错误描述的帮助文件主题的上下文 ID。
CancelDisplay 必填 指定是否在消息框中显示该错误字符串。
10、 Exit:退出。在焦点从控件转移到另一个控件(失去焦点)前一刻触发。
语法:Private Sub object_Exit(ByVal Cancel As MSForms.ReturnBoolean)
参数:object 必填 有效的对象
Cancel 必填 事件状态,False指示应由控件处理事件(默认)。 True指示应用程序处理事件,焦点应保留在当前控件上。
示例:当控件即将失去焦点时弹出提示,选择是继续留在当前控件,选择否跳转至另一个控件
Private Sub ListBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If MsgBox("是否继续编辑?", vbYesNo + vbQuestion, "提示信息") = vbYes Then Cancel = True
End Sub
注意:鼠标点击、卸载窗体、Tab键都会触发Exit事件。
11、KeyDown:按下键。当控件有焦点且键盘有键按下时触发。
语法:Private Sub object_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
参数:object 必填 有效的对象
KeyCode 必填 按下键的键代码,该参数不能返回Shift组合按键值,会先返回Shift键编码16,再返回其它按键编码
Shift 必填 Shift、Ctrl 和 Alt 键的状态
Shift 的设置为:
常量 值 描述
0 Alt、Shift 和 Ctrl三键无任何键按下
fmShiftMask 1 已按下 Shift 键
fmCtrlMask 2 已按下 Ctrl 键
3 已按下 Ctrl 和 Shift 键
fmAltMask 4 已按下 Alt 键
5 已按下 Alt 和 Shift 键
6 已按下 Alt 和 Ctrl 键
7 已按下 Alt、Shift 和 Ctrl 键
示例:按下按键时,输出三键状态和按键值
Private Sub ListBox1_KeyDown(KeyCode As Integer, ByVal Shift As Integer)
Debug.Print Shift
Debug.Print KeyCode
12、KeyPress:按键。当控件有焦点且当用户按某个ANSI键时触发。
语法:Private Sub object_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
参数:object 必填 有效的对象
KeyAscii 必填 按键的Ascii编码值,该参数能返回和Shift键组合按键值。
示例:输出按键Ascii编码值和对应的字符
Private Sub ListBox1_KeyPress(KeyAscii As Integer)
Debug.Print KeyAscii
Debug.Print Chr(KeyAscii)
End Sub
13、KeyUp:松开键。当控件有焦点且键盘有键松开时触发。
语法:Private Sub object_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
参数:参照KeyDown事件
示例:松开按键时,输出三键状态和按键值
Private Sub ListBox1_KeyUp(KeyCode As Integer, ByVal Shift As Integer)
Debug.Print Shift
Debug.Print KeyCode
End Sub
14、MouseDown:按下鼠标。当控件有焦点且鼠标有按下键时触发。
语法:Private Sub object_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
参数:object 必填 有效的对象
Button 必填 标识导致事件发生的鼠标按钮的整数值
Shift 必填 Shift、Ctrl 和 Alt 键的状态
X, Y 必填 水平或垂直位置(以磅为单位),从控件的左边缘或上边缘。
Button 的设置为:
常量 值 描述
fmButtonLeft 1 已按下左按钮。
fmButtonRight 2 已按下右按钮。
fmButtonMiddle 4 已按下中间按钮。
Shift 的设置为:
常量 值 描述
0 Alt、Shift 和 Ctrl三键无任何键按下
fmShiftMask 1 已按下 Shift 键
fmCtrlMask 2 已按下 Ctrl 键
3 已按下 Ctrl 和 Shift 键
fmAltMask 4 已按下 Alt 键
5 已按下 Alt 和 Shift 键
6 已按下 Alt 和 Ctrl 键
7 已按下 Alt、Shift 和 Ctrl 键
示例:当按下鼠标时,输出鼠标按钮值、三键(Alt、Shift 和 Ctrl 键)值、坐标值
Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
Debug.Print "Button:" & Button
Debug.Print "Shift:" & Shift
Debug.Print "X:" & x
Debug.Print "Y:" & y
End Sub
15、MouseMove:鼠标移动。当控件有焦点且鼠标在控件内移动时触发。
语法:Private Sub object_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
参数:参照MouseDown事件,Button为0时无鼠标按键
示例:当移动鼠标时,输出鼠标按钮值、三键(Alt、Shift 和 Ctrl 键)值、坐标值
Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
Debug.Print "Button:" & Button
Debug.Print "Shift:" & Shift
Debug.Print "X:" & x
Debug.Print "Y:" & y
End Sub
16、MouseUp:松开鼠标。当控件有焦点且鼠标有松开键时触发。
语法:Private Sub object_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
参数:参照MouseDown事件
示例:当松开鼠标时,输出鼠标按钮值、三键(Alt、Shift 和 Ctrl 键)值、坐标值
Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
Debug.Print "Button:" & Button
Debug.Print "Shift:" & Shift
Debug.Print "X:" & x
Debug.Print "Y:" & y
End Sub
|
|