VB编程的键盘控制

VB编程的键盘控制

ID:39348315

大小:43.01 KB

页数:4页

时间:2019-07-01

VB编程的键盘控制_第1页
VB编程的键盘控制_第2页
VB编程的键盘控制_第3页
VB编程的键盘控制_第4页
资源描述:

《VB编程的键盘控制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、VB编程的键盘控制我们利用VisualBASIC编写程序,多数情况只涉及到鼠标操作(如单击、双击、拖动等),但如果程序中需要实现文本编辑、热键激活或利用键盘进行游戏控制等功能时,将不可避免地碰到键盘捕获及处理的问题。下面,我们就来看一看VB编程中如何进行键盘控制。一、概述在VB中,很多控件都提供了键盘输入功能(如文本框、组合框等),但它们对键盘的处理较简单,遇到复杂一点的要求即无能为力。因而VB提供了KeyPress、KeyUp、KeyDown三种键盘事件,当用户按键时,会触发这三种事件,而且窗体和接受键盘输入的控件都识别这三种事件。下表对这些事件作了描述。表

2、1键盘事件的触发原因键盘事件触发原因KeyPress按下某ASCII字符键KeyDown按下键盘的任意键KeyUp释放键盘的任意键KeyDown和KeyUp事件提供了最低级的键盘响应,可用这些事件检测KeyPress事件无法检测到的情况:uSHIFT、CTRL和ALT键的特殊组合。u光标控制键。uHOME、END、PAGEUP、PAGEDOWN等。u数字小键盘的数字键与打字键盘数字键的区别。u不仅响应按键操作而且响应释放键操作(KeyPress只响应按键操作)。键盘事件彼此不相互排斥。按下某键时将生成KeyDown和KeyPress事件,而松开此键时生成Key

3、Up事件。当用户按下一个KeyPress不能检测的键时将触发KeyDown事件,松开此键时生成KeyUp事件。若使用KeyUp和KeyDown事件应确保KeyPress事件的功能不够用,通常编写KeyPress事件的代码比较容易。二、KeyPress事件在按下与ASCII字符对应的键时将触发KeyPress事件。ASCII字符集代表标准键盘的字母、数字和标点符号以及部分控制键(ENTER、TAB、BACKSPACE键等)。KeyDown和KeyUp事件能够检测其它功能键、编辑键和光标定位键。当处理标准ASCII字符时应使用KeyPress事件。例如,如果希望将

4、输入到文本框中的所有字符都强制转换为大写字符,则可在输入时使用此事件转换大小写:PrivateSubText1_KeyPress(KeyAsciiAsInteger)KeyAscii=Asc(Ucase(Chr(KeyAscii)))EndSubKeyAscii参数返回对应所按键的ASCII代码。也可通过KeyPress事件识别部分控制键。例如,下述事件过程使用KeyPress检测用户是否正在按BACKSPACE键:PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=8ThenMsgBox"YouPres

5、sedtheBACKSPACEkey."EndSub注:BACKSPACE键的ASCII值为8。还可用KeyPress事件改变某些键的缺省行为。例如,当在文本框内按ENTER键就会结束当前行输入并将光标转到下一行(Multiline属性设为True)。在KeyPress事件中截断ENTER键(ASCII值为13)就可避免这种情况:PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenKeyAscii=0EndSub三、KeyUp和KeyDown事件KeyUp和KeyDown事件报告键盘本身准确的

6、物理状态:按下键(KeyDown)及松开键(KeyUp)。而KeyPress事件并不直接地报告键盘状态,它只提供键所代表的字符而不识别键的按下或松开状态。进一步举例将有助于阐明这一差别。输入大写"A"时,KeyDown事件获得"A"的ASCII码。在输入小写"a"时,KeyDown事件获得相同的ASCII码。为区分大小写,KeyDown和KeyUp事件使用shift参数。与此相对照的是,KeyPress事件将字母的大小写作为两个不同的ASCII字符处理。KeyUp和KeyDown事件通过提供下列两参数返回输入字符的信息。1、Keycode参数字母键的Keyco

7、de与此字母大写字符的ASCII值相同,所以"A"和"a"的Keycode都是由Asc("A")返回的数值;数字与标点符号键的Keycode与键上数字的ASCII码相同,因此"1"和"!"的Keycode都是由Asc("1")返回的数值。PrivateSubText1_Keydown(KeyCodeAsInteger,ShiftAsInteger)IfKeyCode=65ThenMsgBox"YoupressedtheAorakey."EndSub上例中按下"A"或"a"后都将显示消息框,为判断按下的字母是大写还是小写需用shift参数。可见,处理这些键时用K

8、eyPress事件更方便。KeyDow

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。