第9章键盘与鼠标事件过程 91 Keypress事件 92 KeyDown和 KeyUP事件 93鼠标事件 9.4鼠标光标 95*拖放
9.1 KeyPress事件 9.2 KeyDown和KeyUP事件 9.3 鼠标事件 9.4 鼠标光标 9.5* 拖放 第9章 键盘与鼠标事件过程
91 Keypress事件 Sub Form Keypress(KeyAscii As Integer) Sub object Keypress(lindex As Integer, KeyAscii As Integer) KeyAscii用于返回一个标准ANS键的ASCI码 例9-1将输入到文本框Text1的文本转换为大写,并将输入的原始 字符显示在Text2中。 ption Explicit Dim Strl As String Private Sub TextI Keypress(KeyAscii As Integer) Strl=Chr( KeyAscii)"将按键的ASCI值转换为字符 KeyAscii=Asc(UCae(Str1)'将字符转换为大写并重置Text的字符 Text2.Text=Tex2.Text&Str'将输入的原始字符复制到Text2中 End sub
9.1 KeyPress事件 Sub Form_KeyPress(KeyAscii As Integer) Sub object_KeyPress([index As Integer,] KeyAscii As Integer) KeyAscii用于返回一个标准ANSI键的ASCII码。 例9-1 将输入到文本框Text1的文本转换为大写,并将输入的原始 字符显示在Text2中。 Option Explicit Dim Str1 As String Private Sub Text1_KeyPress(KeyAscii As Integer) Str1 = Chr(KeyAscii) '将按键的ASCII值转换为字符 KeyAscii = Asc(UCase(Str1)) '将字符转换为大写,并重置Text1的字符 Text2.Text = Text2.Text & Str1 '将输入的原始字符复制到Text2中 End Sub
KeyAscii通过引用传递,对它进行改变可给对象发送一个改变 的字符。如将 Keyascii改变为0时可取消击键,这样一来对象便 接收不到所按键的字符。 例如,数字的ASC码是在48~57范围,下列事件处理只允许用 户在文本框中输入数字(非数字字符被取消击键): 19 9 1 1 Private Sub Text1 KeyPress(keyAscii As Integer) If KeyAscii<48 Or keyascil>57Then'输入为非数字字符 KeyAscii=0'抑制非数字字符的输入 End if End sub
KeyAscii通过引用传递,对它进行改变可给对象发送一个改变 的字符。如将KeyAscii改变为0时可取消击键,这样—来对象便 接收不到所按键的字符。 例如,数字的ASCII码是在48~57范围,下列事件处理只允许用 户在文本框中输入数字(非数字字符被取消击键): 例9_1_1 Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii < 48 Or KeyAscii > 57 Then ' 输入为非数字字符 KeyAscii = 0 ' 抑制非数字字符的输入 End If End Sub
92 Keydown和 KeyUP事件 KeyDown事件过程 Sub form KeyDown(KeyCode As Integer, shift As Integer) Sub object KeyDown( [Index As Integer KeyCode As Integer, Shift As Integer) KeyUp事件过程 Sub Form KeyUp(KeyCode As Integer, ShiftAs Integer) Sub object KeyUp([Index As Integer,) KeyCode As Integer, Shift As Integer) 参数说明 Index:是一个整数,它用来唯一标识一个在控件数组中的控件。 KeyCode:是一个键的扫描码,可以用诸如 vbKeyfl(F1键)的系统 常量表示,它的值只与按键在键盘上的物理位置有关,与键盘的大小 写状态无关;如果按的是两个以上的组合键, KeyCode将先后得到所 有这些不同物理位置键的扫描码
9.2 KeyDown和KeyUP事件 KeyDown事件过程 Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Sub object_KeyDown([Index As Integer,] KeyCode As Integer, Shift As Integer) KeyUp事件过程 Sub Form_KeyUp(KeyCode As Integer, ShiftAs Integer) Sub object_KeyUp([Index As Integer,] KeyCode As Integer, Shift As Integer) 参数说明 Index:是一个整数,它用来唯一标识一个在控件数组中的控件。 KeyCode:是一个键的扫描码,可以用诸如vbKeyFl(F1键)的系统 常量表示,它的值只与按键在键盘上的物理位置有关,与键盘的大小 写状态无关;如果按的是两个以上的组合键,KeyCode将先后得到所 有这些不同物理位置键的扫描码
Shift:参数是一个3位二进制的整数,标明在该事件 发生时是否还同时按了Shif、(trl和A这三个控制键 Shif参数的表达与含义见下面表91。 表91Shit参数值的表达与含义 常量 十进值〔二进值 表述 ybshifMask 101) shift键被按下 ybCtrllask 2①10 ctl键被按下 vbAltMask 4(100) AI键被按下
Shift:参数是一个3位二进制的整数,标明在该事件 发生时是否还同时按了Shift、Ctrl和Alt这三个控制键。 Shift参数的表达与含义见下面表9-1