目录
一、键盘事件
1.1 详解VB提供三种键盘事件:KeyPress、KeyDown和KeyUp。
1.2 KeyPress事件
1.3 KeyDown和KeyUp事件
二、鼠标事件
MouseDown、MouseUp和MouseMove事件
一、键盘事件 1.1 详解VB提供三种键盘事件:KeyPress、KeyDown和KeyUp。 如果按下键盘上一个会产生ASCII码的字符键(字母键、数字键和符号键)时,就会触发keyPress事件; 如果按下键盘上的任意键,就会触发KeyDown事件; 如果释放键盘上的任意键,就会触发KeyUp事件。如果用户按下一个KeyPress不能检测的键时,则触发KeyDown事件。
1.2 KeyPress事件语法格式
private sub _KeyPress(KeyASCII as integer)
******
end sub
注:是接受键盘事件的窗体或者控件名称。
参数keyPress是所按键的ASCII码值。
常见ASCII码的大小规则:0~9<A~Z<a~z。
48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,
97~122为26个小写英文字母,
-20319~-3652为汉字。
1.3 KeyDown和KeyUp事件
KeyDown和KeyUp事件的语法格式同为:
private sub _event(KeyCode as integer,Shift as integer)
******
end sub
注:
是接受键盘事件的窗体或者控件名称。event是键盘事件的名字,KeyDown或KeyUp
参数KeyCode表示按下的物理键,通过ASCII码值或键代码常数来识别。
参数Shift用于表示键盘事件发生时shift、Ctrl和Alt键的状态。
二进制
十进制
常数
意义
001
1
vbShiftMask
按住Shift键
010
2
vbCtrlMask
按住Ctrl键
100
3
vbAltMask
按住Alt键
011
4
vbShiftMask+vbCtrlMask
按住Shift键和Ctrl键
101
5
vbShiftMask+vbAltMask
按住shift键和Alt键
110
6
vbCtrlMask+vbAltMask
按住Ctrl键和Alt键
111
7
vbShiftMask+vbCtrlMask+vbAltMask
按住Shift键、Ctrl键和Alt键
例如
Private Sub txtCardNo_KeyDown(KeyCode As Integer, Shift As Integer)
If Shift = 2 And KeyCode = vbKeyV Then '如果是Ctrl+V,清空剪贴板
Clipboard.Clear
End If
End Sub
二、鼠标事件
单击鼠标触发Click事件,双击鼠标触发DblClick事件。当用户按下鼠标时触发MouseDown事件,松开鼠标时触发MouseUp事件,鼠标指针移动时触发MouseMove事件。
MouseDown、MouseUp和MouseMove事件
MouseDown、MouseUp和MouseMove事件过程的语法格式同为:
private sub _event(Button as Integer,Shift as Integer,X as Single,Y as SIngle)
*******
end sub
注:
是接受键盘事件的窗体或者控件名称。event是键盘事件的名字,MouseDown、MouseUp和MouseMove。
参数Button表示引起该事件的是鼠标的那个键。中键3,右键2,左键1。
参数Shift表示当鼠标键被按下或者松开时,shift、Ctrl和Alt键的状态。(具体含义与键盘事件一样)
参数X和Y表示鼠标指针的位置。
例如
Private Sub txtCardNo_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 2 Then '如果是右键,清空剪贴板
Clipboard.Clear
End If
End Sub
作者:张有博