Shit:参数是一个3位二进制的整数 的表达与含义见下面表91。标明在该事件发生时 是否还同时按了 Shift、Ctr和At这 个控制键。Shif参数l 表91shi参数值的表达与含义 常量 十进值(二进值〕 表述 ybShiftmask 1001) Shift键被按下 vbCtrlmask 2010 Ctl键被按下 vbeltmask 4(100) AI键被按下
Shift:参数是一个3位二进制的整数,标明在该事件发生时 是否还同时按了Shift、Ctrl和Alt这三个控制键。 Shift参数 的表达与含义见下面表9-1
Keypress-与 Keydown、 Keyup的区别: KeyPress Keydown和 KeyUp 事件发生的时间 输入一个ASCⅡ字符按任意一个键 参数值 Keyascii接收到 KeyCode接收到 的时字符的ASCI值键的扫描码 按Sht+A时 事件发生一次 事件发生两次 事件发生的次数(只由<A>键状态决定)<Shif和<A>2位置 (键盘处于大写状态) KeyAscii=97 第一次 KeyCode=17 按Shit+A时参数值 第二次 KeyCode=65 键盘处于小写状态) Keyascii=65第一次 Keycode=17 按 Shift+a时参数值 第二次 Key Code=65
KeyPress KeyDown和KeyUp 事件发生的时间 输入一个ASCII字符 按任意一个键 参数值 KeyAscii接收到 字符的ASCII值 KeyCode接收到 键的扫描码 按Shift+A时 事件发生的次数 事件发生一次 (只由<A>键状态决定) 事件发生两次 <Shift>和<A>2位置 (键盘处于大写状态) 按Shift+A时参数值 KeyAscii= 97 第一次KeyCode=17 第二次KeyCode=65 (键盘处于小写状态) 按Shift+A时参数值 KeyAscii= 65 第一次KeyCode=17 第二次KeyCode=65 KeyPress与KeyDown、KeyUp的区别:
则先发生这些席体事件接着又发生这些控件事件 窗体的 控件的: 窗体的 Key preview为True Ke Keypress .Ke evpress 焦点在控件上输入 Key down Key down Keyi KeyI 在这里对 KeyAscii 在这里对 KeyAscii 作一点修改将影响 作一点修改只 假定窗体 Key preview为re,并有下面事过程, 所有控件 影响一个 则当在文本框中输入“1”时,实际上得到的是“3 Sub form Keypress(KeyAsciiAsInteger) KeyAscii= KeyAscii+ 1 End sub 窗体 Keypreview为 False时 在文本框中输入“1”时,实际上 Sub TextI Keypress(KeyAsciiAs Integer) 得到的是什么。 KeyAscii= Keyascii+ End sub
窗体的: KeyPress KeyDown KeyUp 控件的: KeyPress KeyDown KeyUp 窗体的KeyPreview为True 焦点在控件上输入 Sub Form_KeyPress(KeyAscii AsInteger) KeyAscii = KeyAscii + 1 End Sub Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = KeyAscii + 1 End Sub 假定窗体KeyPreview为True,并有下面事件过程, 则当在文本框中输入“1”时,实际上得到的是“3” ?窗体KeyPreview为False时 在文本框中输入“1”时,实际上 得到的是什么。 在这里对KeyAscii 作一点修改将影响 所有控件 在这里对KeyAscii 作一点修改只 影响一个控件 则先发生这些窗体事件 接着又发生这些控件事件
对输入的数据进行验证、限制和修改 (1)修改输入数据,让控件只能接收大写字符 将 Keypreview设置为Tue,并写下列 Form Key Press事件代码 Sub Form Key Press(KeyAscii As Integer) lfKeyAscii>=Asc("a")And KeyAscii<=Asc(z) Then KeyAscii= KeyAscii-(Asc("a")-ASc("A)) End lf End sub Limes/ (2)限制数据输入,让文本框89的数字字 写下列文本框的 Keypress事件代码: Sub txtExample keypress(KeyAscii As Integer) if KeyAscii<48 Or KeyAscii> 57Then KeyAscii=o End jf.1 End sub
对输入的数据进行验证、限制和修改 (1) 修改输入数据,让控件只能接收大写字符 将KeyPreview设置为True,并写下列Form_KeyPress事件代码: Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii >= Asc("a") And KeyAscii <= Asc("z") Then KeyAscii = KeyAscii – ( Asc("a") - Asc("A") ) End If End Sub (2)限制数据输入,让文本框只能接收“0”~“9”的数字字符 写下列文本框的KeyPress事件代码: Sub txtExample_KeyPress(KeyAscii As Integer) If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If End Sub