好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

VB键盘与鼠标事件过程.pptx

55页
  • 卖家[上传人]:豆浆
  • 文档编号:11264819
  • 上传时间:2017-08-15
  • 文档格式:PPTX
  • 文档大小:325.73KB
  • / 55 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第7章 键盘与鼠标事件过程,主要内容使用键盘事件过程,可以处理当按下或释放键盘上某个键时所执行的操作;而鼠标事件过程可用来处理与鼠标光标的移动和位置有关的操作本章介绍与键盘和鼠标有关的事件过程键盘事件,KeyPress 按了键盘的某键时触发 KeyDown 按下键盘的某键触发 KeyUp 释放键盘的某键触发只有获得焦点的对象才能够接受键盘事件键盘事件可获得当前所按键的信息在Visual Basic中,提供KeyPress、KeyDown、KeyUp三种键盘事件,窗体和接受键盘输入的控件都识别这三种事件键盘事件的先后顺序,按下键盘的某键,注意:有时一个动作会触发若干个事件当按下键盘上某一键时,触发了多个键盘事件窗体的KeyPreview属性,窗体的KeyPreview属性设置为True,则首先触发窗体的KeyPress、KeyDown和KeyUp 事件,然后再触发活动控件的KeyPress、KeyDown和KeyUp 事件 即如窗体键盘事件过程修改了所按键的值,则当前具有焦点的控件的KeyPress事件过程将接收到修改后的值活动窗体和活动控件触发键盘事件的顺序,默认值为False,键盘事件与其它事件,在对某活动控件按键时,先触发该控件的键盘事件,然后才是其它事件。

      如文本框,按键后,触发其键盘事件,然后是Change事件,并显示字符键盘事件常用于检查输入数据是否合法如在某文本框中输入“a”,则在文本框接受字符前,键盘事件的程序可以先期截获该字符键盘事件与其它事件,例: 设置一个文本框,只能用来输入数字,如果输入其他的字符,就发出警告声7. 1.1 KeyPress事件,在程序运行过程中,当按下键盘某个键时,会触发当前拥有输入焦点的那个控件的KeyPress事件 当KeyPress事件发生时,可获得当前所按键的字符ASCII码值,如:按下回车键时,可获得该键的字符ASCII码值13 KeyPress事件可用于文本框、图片框、命令按钮、复选框、列表框、组合框、滚动条、窗体等有关控件KeyPress事件过程 在窗体上画一个控件,双击该控件,进入程序代码窗口后,从“过程”框中选取KeyPress,即可定义KeyPress事件过程 一般格式为:Private Sub Form_KeyPress(KeyAscii As Integer)Private Sub object_KeyPress(KeyAscii As Integer),窗体的事件过程,控件的事件过程,KeyPress事件过程 形参KeyAscii,其参数值是当KeyPress事件发生时,由系统自动传递过来的当前所按键的Ascii码值。

      例 当按下“A”键,系统传递给形参KeyAscii的值为65; 当按下“a”键时,则系统传递给KeyAscii的值为97KeyPress事件能识别字母、数字、标点等键盘上的字符键此外还识别Enter、BackSpace、Tab等键,其它功能键不能识别如何获得按下字符的Ascii参数:KeyAscii As Integer程序中可以直接引用 KeyAsciiKeyAscii代表按键的相对应的Ascii码值,常用Ascii码(10进制)表,ASCII码编码范围:0-127共128个0-31和127为控制符,无法打印KeyPress 事件识别范围:数字键、字符键、标点符号键控制键只识别: ENTER、TAB 和 BACKSPACE 键注:表内的为KeyPress事件能接收的键应用:对输入的数据进行验证、限制和修改 1.限制数据输入 文本框中只能接收“0”~“9”的数字字符 Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii < 48 Or KeyAscii > 57 Then Msgbox “请输入0-9之间的数字” KeyAscii = 0 End If End Sub,2.用KeyPress捕捉击键动作Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii =13 Then Print Text1.Text Text2.SetFocus End If End Sub,3.用KeyPress过程输入口令显示“*”Dim Psw As StringSub Text1_KeyPress(KeyAscii As Integer) If KeyAscii >=65 And KeyAscii <=122 Then Psw = Psw & chr(KeyAscii) KeyAscii=42 ‘ 42为字符“*”的Ascii码值 End IfEnd Sub,Text1所接收的符号Ascii码值全部为42即全部为“*”,【例7.1】,程序运行过程中,当按下键盘某个键时,则产生KeyDown事件,而放开该键时产生KeyUp事件。

      按下某个键也会发生KeyPress事件,但与KeyDown事件是不一样的KeyDown和KeyUp事件返回的是键盘的直接状态,即该键的“扫描码”值7.1. 2 KeyDown事件和KeyUp事件,KeyDown和KeyUp事件过程Sub Form_KeyDown(keycode As Integer, shift As Integer)Sub Form_KeyUp(keycode As Integer, shift As Integer)Sub object_KeyDown(keycode As Integer,shift As Integer)Sub object_KeyUp(keycode As Integer,shift As Integer) 两个参数:1.键盘扫描码 2.返回Shift、Ctrl、Alt键的状态,,,可用于窗体和文本框、图片框等有关控件参数KeyCode:键盘扫描码 由于字母键不论大写还是小写都是按同一个键,所以按下每个字母键时的 KeyCode 值只能为一个值,如按下“A”与按下“a”得到的KeyCode值都是65(有上下档键的字符取下档键的Ascii码值)。

      Shift:记录Shift、Ctrl、Alt三个转换键的状态按Shift键(001B) Shift=1按Ctrl键 (010B) Shift=2按Alt键 (100B) Shift=4如果同时按下两个或三个转换键,则Shift参数的值即为上述两者或三者之和请自己试一试参照教材P208页),同时按下Ctrl和Shift键,Shift参数值为3,Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = &H70 Then Print "压下了功能键F1"End IfEnd Sub,1.捕捉某功能键,Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If Shift = 2 And KeyCode = 65 Then Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End IfEnd Sub,按Ctrl+A键实现文本框内容"全选",Const Key_F1 = &H70 Const Shiftkey = 1Const Ctrlkey = 2Const Altkey = 4Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = Key_F1 And Shift = Shiftkey Then Print "压下了Shift+F1"End IfEnd Sub,2.捕捉Shift、Ctrl、Alt键,KeyDown、KeyUp与KeyPress的区别:KeyPress不直接报告键盘的状态,只报告Ascii值;不识别按下、放开的动作;通过 Keyascii 返回输入字符的信息。

      KeyDown 、KeyUp区分按下与放开操作;不区分大小写;通过 Keycode 和 Shift 返回输入键盘码的信息按下键盘时,控件的键盘事件触发顺序为KeyDown KeyPress KeyUp,,,【例7.2】,通过键盘控制滚动条P210,数字0键 向左一大步“-”键 向左一小步,“=”键 向右一大步“\”键 向右一小步,通过键盘控制滚动条P210,数字0键 向左一大步“-”键 向左一小步,“=”键 向右一大步“\”键 向右一小步,【例7.3】,鼠标事件 Click、DblClick、MouseMove、 MouseDown 、MouseUp等事件7.2 鼠标事件,一.MousePointer属性鼠标光标的形状通过MousePointer属性该属性可以在属性窗口中设置,也可以在程序代码中设置格式为:对象名. MousePointer=设置值MousePointer属性是个整数值,可以取0-15间的任意值参照P214页表7-67.2.1 鼠标光标的形状,【例 7.4】,一.自定义鼠标光标如果将MousePointer属性设置为99,则可通过MouseIcon属性定义自己的鼠标光标。

      属性窗口设置:将MousePointer属性设置为“99-Custom”;将一个图标文件赋给MouseIcon属性代码方法为:Form1.MousePointer=99Form1.MouseIcon=LoadPicture(“c:\vb98\…”),【例】利用鼠标事件画彩色线Dim b As BooleanPrivate Sub Form_Load()b = FalseDrawWidth = 5End SubPrivate Sub Command1_Click()ClsEnd SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)b = TrueForm1.MousePointer = 99Form1.MouseIcon = LoadPicture("D:\pencil_green.ico")End Sub,Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)If b Thencr = Rnd * 255: cg = Rnd * 255: cb = Rnd * 255PSet (X, Y), RGB(cr, cg, cb)End IfEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)b = FalseForm1.MousePointer = 1End Sub,1)鼠标事件与事件过程Click、DblClick、MouseMove、 MouseDown 、MouseUp等事件。

      鼠标发生某个动作时触发相应的事件 注意:有时一个动作会触发若干个事件 鼠标单击时,依次引发 MouseDown、MouseUp、 Click事件,即Click事件是包括在鼠标按下和放开的一个组合过程中。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.