第六章 响应鼠标和键盘事件.ppt47
《鼠标键盘和OLE》PPT课件
End Sub
Private Sub Form_Load() '装载窗体
MousePionter属性的设置值与形状如表9.3所示。
9.1.2 改变鼠标指针
• 表9.3 MousePionter属性值
常数
值
描述
vbDefault
0
VbArrow
1
VbCrosshair
2
VbIbeam
3
VbIconPointer
4
VbSizePointer
5
VbSizeNESW
6
VbSizeNS
C1 = 0 End Sub
9.1.1 鼠标事件
3.MouseMove事件 MouseMove事件是鼠标在屏幕上移动时触发的,窗体和控件都能识别
MouseMove事件, 当鼠标指针在对象的边界范围内时该对象就能接收 MouseMove事件,除非有另一个对象捕获了鼠标。
当移动鼠标时, Button参数对于MouseMove事件与MouseDown和MouseUp事件不同, MouseMove事件的Button值表示所有按键的状态,而MouseDown和MouseUp事件 的Button的值无法检测是否同时按下两个以上的按键。 【例9-2】在图片框中绘制连续的线和方块。 使用MouseMove事件可以连续地画线和方块,当鼠标移动时在不断触发的 MouseMove事件中画线和方块。运行界面如图9.3所示。 程序代码如下。
第6章 键盘和鼠标事件
2019/2/12
2
Visual Basic程序设计教程
6.1 键盘事件
程序运行时,用户进行键盘操作,就会产
生键盘事件,由当前获得焦点的对象,来 响应键盘事件。 本节包括以下内容:
KeyPress事件 6.1.2 KeyDown事件和KeyUp事件
6.1.1
2019/2/12
3
22
Visual Basic程序设计教程
例6-2(语句-1)
程序代码如下:
Dim
BeginNow As Boolean Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) BeginNow = True Form1.DrawWidth = 3 Form1.CurrentX = X ‘设置窗体的当前坐标属性 Form1.CurrentY = Y End Sub
2019/2/12
21
Visual Basic程序设计教程
例6-2(界面)
【例6-2】使用MouseUp、MouseDown和
MouseMove事件,编写一个在窗体上用鼠 标绘图的简单程序。在窗体上按住鼠标按 键,移动鼠标时开始绘画,释放按钮时停 止绘画。程序运行界面如图6-2所示。
2019/2/12
17
Visual Basic程序设计教程
6.2.1 MouseMove事件
参数说明: ① Button参数是表示按下或松开鼠标哪个按键。 Button取值与对应按键描述如表6-3所示。 ② Shift:通过Shift参数表示在按钮被按下或松开的情 况下键盘的Shift、Ctrl和Alt键的状态,它的取值为 0~7的整数,与前面KeyDown、KeyUp事件中的Shift 参数完全相同,如表6-2所示。 ③ 参数X、Y:鼠标指针的位置。X和Y的值是使用该 对象的坐标系统表示鼠标指针当前的位置。
鼠标和键盘事件
第14页
5、标签数组的使用 Label[] lblArray; lblArray; lblArray = new Label[] { label1, label4, label5, label4 label5 label6 label7 label8 label6, label7, label8 }; 将所有label1的地方外层加循环 的地方外层加循环, label1改为 将所有label1的地方外层加循环,将label1改为 lblArray[i]
第9页
【打字游戏】 打字游戏】
要使窗体在可以获得焦点的控件之前截获键盘事件, 要使窗体在可以获得焦点的控件之前截获键盘事件, 应该将窗体的KeyPreview属性设为 属性设为true。 应该将窗体的 属性设为 。 (1)窗体的KeyPreview属性设为 )窗体的 属性设为true 属性设为 (2)int score //表示得分 ) 表示得分
第11页
2、标签上文字的获取 假设范围为英文字母A 假设范围为英文字母A—Z。 Random aa=new Random(); label1.Text= ( (char) aa.Next(65,91)).ToString();
第12页
3、键盘事件 private void Form1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == char.Parse(label1.Text) || e.KeyChar == char.Parse(label1.Text.ToLower())) { score += 10; label3.Text = score.ToString(); label1.Text = ((char)aa.Next(65, 91)).ToString(); label1.Top = 20问题 1、鼠标的位置 、 2、哪个鼠标按键按动 、
键盘和鼠标事件
注意同时按下多个时shift的值是按下单个值的相加 的值是按下单个值的相加 注意同时按下多个时
说明: 说明: 大部分的按键在VB中都定义了常量, 中都定义了常量 ④大部分的按键在 中都定义了常量,例 键的常量是vbKeyF1,Tab键的常量 如F1键的常量是 键的常量是 , 键的常量 是vbKeyTab,Home键的常量 , 键的常量 vbKeyHome. 这些常量可以代替 这些常量可以代替keycode 的值在程序中直接使用
Shift参数值
十进制数 0 1 2 4 3 5 6 7 二进制数 000 001 010 100 011 101 110 111 转换键状态 没有按下转换键 只按下Shift键 键 只按下 只按下Ctrl键 键 只按下 只按下Alt键 只按下 键 同时按下Shift和Ctrl键 和 同时按下 键 同时按下Shift和Alt键 和 键 同时按下 同时按下Ctrl和Alt键 和 键 同时按下 三个转换键全都按下
Case vbKeyHome: TxtShow.Text = TxtShow.Text & vbCrLf & "按下 & ShiftStatus(Shift) & " 按下" 按下 功能键Home" 功能键 Case vbKeyPageUp: TxtShow.Text = TxtShow.Text & vbCrLf & "按下 & ShiftStatus(Shift) & "功能键 按下" 按下 功能键 PageUp" End Select End Sub
利用KeyPress事件对键盘输入的值取舍。 事件对键盘输入的值取舍。 例如 :利用 事件对键盘输入的值取舍 程序运行后要求输入大写字母, 程序运行后要求输入大写字母,如果输入的是其 它字符就响铃报警,设计界面如下图: 它字符就响铃报警,设计界面如下图:
第6章 Windows应用程序对键盘与鼠标的响应-PPT课件
//输入位置为本行的起始位置
break;
case VK_DELETE:
//处理按下键为Delete时的消息
if(nArrayPos==nNumChar) //输入位置处于本行的末尾
MessageBox(hWnd,
"缓冲区已空,没有字符可供删除",NULL,MB_OK);
else
{
for(x=nArrayPos;x<nNumChar;x=x+1)
若字符缓冲区中已没有任 何字符,此时按下了 Delete键,则出现(5)号错 误提示信息
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{
#define BufSize 30
//设置存放字符的缓冲区大小
//设置静态字符数组,存放输入的字符,字符个数不能超出缓冲区大小
操作系统在接收到键盘输入后,还要决定哪一个应用程序将响应输入
Windows系统把消息发送给具有“输入焦点(input focus)的窗口
应用程序一般有几个窗 口,但当按下某一个键 时,只有一个窗口能接 收到该键盘消息,接收 这个键盘消息的窗口称 为有“输入焦点”的窗口
有“输入焦点” 的窗口应是活 动窗口或者活 动窗口的子窗口
12
含义 非系统字符 非系统死字符 系统字符 系统死字符
6.2 键盘操作应用举例
【例6-1】本例演示键盘输入时所产生的消息序列并在窗口的客 户区显示对应的字符。
13
用户窗口区输入“这是一 个有关键盘操作的示例程 序”的字符串
程序中缓冲区大小只设30 个字符,当缓冲区满时若 再输入任何字符,就出现 (1)号错误提示
项目十 鼠标和键盘事件的响应
else if(e.getKeyChar()=='b'||e.getKeyChar()=='B') c=Color.blue;
else c=Color.black;
repaint(); }} public void paint(Graphics g) {
g.setColor(c); g.fillOval(60,60,100,100); } public static void main(String args[]){ new hh(); } }
(4)mouseExited(MouseEvent)方法,鼠标指针离开容器时, 接口监视器发现这个事件后自动调用这个方法。
new hh(); } }
10.2.3 键盘适配器类KeyAdapter
使用KeyListener接口时,即使有些方法不使用也必须在 程序中写出接口的所有方法,因此比较麻烦,而 java.awt.event.keyAdapter类本身就使用了KeyListener接口, 并对接口的三个方法增加了空方法体,因此使用keyAdapter 类时不必像使用接口那样实现所有方法,只需覆盖要响应的 键盘事件方法即可。
④事件监听器监听到事件后,会根据事件的类型调用相应的 事件处理方法。
事件源
产生事 件
事件 1
捕获事件
监视器1
事件 2
监视器2
图10-1 事件处理模型
事件处 理
事件处 理
1.java.awt.event包
(1)文本框回车、按钮单击、计时器、菜单项 引发动作事件:java.awt.event.ActionEvent 处理事件的接口:java.awt.event.ActionListener 接口中的方法:public void actionPerformed(ActionEvent event) (2)单选按钮、多选按钮、下拉列表 引发选项事件:java.awt.event.ItemEvent 处理事件的接口:java.awt.event.ItemListener 接口中的方法:public void itemStateChanged(ItemEvent event)
键盘与鼠标事件ppt课件
1
章节分布
1 键盘事件
2 鼠标事件
2
8.1 键盘事件
KeyPress事件过程 KeyDown事件过程
KeyUp事件过程
键盘事件
3
8.1.1 KeyPress事件过程
• 触发时刻:当按下键盘上某个键时,将触 发KeyPress;
• 服务对象:窗体、复选框、组合框、命令 按钮、列表框、
正确,在MouseMove中,可以对Button进行累加。
MouseMove:If (Button And 3)=3 Then “同时按下左、右两键”
正确,两种情况,同时按左右键或三个键都按下。
13
• 应用举例 • Example 8.4:编写程序,在窗体上画
圆,要求:按着右键移动鼠标,则可以画 圆;否则不能画圆。
Single)
Integer, x As Single, y As
…
{ EndBuStut,即1,按下鼠标左键 010,即2,按下鼠标右键 100,即4,按下鼠标中间键
• - x, y:鼠标光标当前的位置;
12
需要注意的是,在MouseDown和 MouseUp中,Button值不能进行求和,即 Button值只能是3个值中的某一个,它不能 M反ous映eD是ow否n:同If B时ut按ton下=3 了The鼠n “标同时上按的下多左、个右键两键;”对 于MouseMove来错误说,在,Mo可use以Dow通n中过,不B能u对ttBoutnto参n进行数累加。 M判ous断eM按ov下e:一If B个utt或on=同3 T时he按n “下同时多按个下左键、。右两键”
14
• 按下鼠标键事件过程
Sub Form_MouseDown (Button As Integer, Shift
键盘与鼠标响应-PPT课件
VK_BACK VK_TAB VK_RETURN VK_CONTROL VK_PAUSE VK_ESCAPE VK_NEXT VK_HOME VK_RIGHT VK_DOWN VK_A~VK_Z
退格键 制表键 回车键 Ctrl键 Pause键 Esc键 PageDown键 Home键 右箭头键 下箭头键 A~Z键
键盘消息
按键消息
系统按键消息 非系统按键消息
字符消息
系统字符消息 非系统字符消息
按键消息
当用户按下或松开一个键时产生按键消息。 系统按键消息:
使用Alt键与相关输入键产生的消息。由 windows系统内部直接处理,应用程序不必 处理。
WM_SYSKEYDOWN WM_SYSKEYUP
按下系统键 松开系统键
static int nYChar[Y]={0,0,0,0,0};
static int nNumChar[Y]={0,0,0,0,0}; static int nTextStartX[Y]={0,0,0,0,0}; static int nTextStartY[Y]={0,0,0,0,0};
static SIZE size[Y]; static int n=0;
非系统按键消息:
不使用Alt键组合的按键消息,由应用程 序处理,例如:Home,End,上、下、左、右移 动键。
WM_KEYDOWN WM_KEYUP
按下非系统键 松开非系统键
lParam表示的含义常用的有四位:
0~15位:重复计数位。当键一直被按着时, 计算按键次数 29位:标识该键是否与Alt键一同被按下。 30位:标识键的先前状态 31位:标识键被按下还是被松开。 按键消息的wParam包含了识别按下的键 的虚拟码。
VB——第6章 键盘和鼠标事件
KeyAscii = Asc(Ucase(Chr(KeyAscii))) End Sub Visual Basic程序设计教程
中国石油大学(华东)石油工程学院
6.1 键盘事件
例6.1 通过编程序,在一个文本框(Text1)中限定只能 输入数字、小数点,只能响应BackSpace 键及回车键。
Visual Basic程序设计教程
中国石油大学(华东)石油工程学院
6.3 鼠标事件
6.3.2 OLE 拖放 (简略介绍,一般不作要求) Visual Basic支持OLE 拖放,使用这种强大且实用的工具, 可以在其他支持 OLE 拖放的应用程序(如 Windows 资源管
中国石油大学(华东)石油工程学院
6.3 拖放操作
6.3.1 控件 拖 放 (简略介绍,一般不作要求)
在运行时拖动控件,通常情况下并不能自动改变控件位置, 这就必须使用Visual Basic的拖放功能,通过编程,才能实 现在运行时拖动控件并改变其位置。把按下鼠标按钮并移动 控件的操作称为拖动,把释放按钮的操作称为放下。
中国石油大学(华东)石油工程学院
6.2 鼠标事件
大多数控件能够识别鼠标的MouseMove、MouseDown和 MouseUp事件,通过响应这些鼠标事件,能在应用程序对鼠 标位置及状态的变化作出响应操作。 MouseMove 每当鼠标指针移动到屏幕新位置时发生
MouseDown
MouseUp
Visual Basic程序设计教程
中国石油大学(华东)石油工程学院
说明:
•index:唯一标识控件数组中的控件。 •Source:被拖放的控件。 •x,y:鼠标在目标对象中的位置坐标。 •过程名中的Form或对象名即为目标对象。
6Javascript事件处理精品PPT课件
事件处理举例
❖将特定的代码放置在其所处对象的事件处 理器中
例1: <body onload="alert('建议浏览器的分辨率: 800x600');"> <body onload="var str='建议浏览器的分辨率: 800x600'; alert(str); ">
事件处理举例
❖例2: <script> function show(){ var str=“建议浏览器的分辨率:800x600”; alert(str); } //如果没有参数,函数()省略
❖document.onload=show; ❖</script>
如何编写事件处理程序(3)
❖三 编写特定对象特定事件的 JavaScript。 这种方法用得比较少,但是在某些场合还 是很好用的。方法是:
常见事件--列表3
属性 onreset onresize onselect onsubmit onunload
当以下情况发生时,出现此事件 重置按钮被点击 窗口或框架被调整尺寸 文本被选定 提交按钮被点击 用户退出页面
FF N IE 1 34 1 44 1 23 1 23 1 23
鼠标和键盘事件
WEB基础
JavaScript-06 事件处理
目标
❖了解什么是事件以及事件的调用 ❖了解常用事件 ❖掌握鼠标键盘事件 ❖掌握页面事件 ❖掌握表单事件
事件概述
❖用户与网页交互时产生的操作,称为事件。
❖事件可以由用户引发,也可能是页面发生 改变,甚至还有你看不见的事件(如Ajax的 交互进度改变)。
JavaScript程序设计(第2版)第6章02.鼠标键盘事件
运行结果如图6-11和图6-12所示。
图6-11 鼠标移入时获得焦点
图6-12 鼠标移出时失去焦点
鼠标移动事件
鼠标移动事件(onmousemove)是鼠标在页面上进行移动时触发事件处理程序,可以在该事件中 用do例6-6 下面在页面中添加一串文字及一个层,自定义函数move(),当鼠标移动到指定的语句时, 将通过层动态显示飞出来的星形标记;自定义函数out(),当鼠标移出指定的文字时,隐藏星形标记。 代码如下。 语法:
结果如图6-7和图6-8所示。
图6-7 单击按钮前的效果
图6-8 单击按钮后的效果
鼠标的按下或松开事件
鼠标的按下或松开事件分别是onmousedown和onmouseup事件。其中,onmousedown事件 用于在鼠标按下时触发事件处理程序,onmouseup事件是在鼠标松开时触发事件处理程序。在用鼠 标单击对象时,可以用这两个事件实现其动态效果。 例6-4 下面应用onmousedown和onmouseup事件将文本制作成类似于<a>(超链接)标记 的功能,也就是在文本上按下鼠标时,改变文本的颜色,当在文本上松开鼠标时,恢复文本的默认颜 色,并弹出一个空页(可以链接任意网页)。程序代码如下。
运行结果如图6-9和图6-10所示。
图6-9 按下鼠标时改变字体颜色
图6-10 松开鼠标时恢复字体颜色
鼠标的移入移出事件
鼠标的移入和移出事件分别是onmouseover和onmousemove事件。其中,onmouseover事 件在鼠标移动到对象上方时触发事件处理程序,onmousemove事件在鼠标移出对象上方时触发事 件处理程序。可以用这两个事件在指定的对象上移动鼠标时,实现其对象的动态效果。 例6-5 本示例的主要功能是鼠标在图片上移入或移出时,动态改变图片的焦点,主要是用 onmouseover和onmouseout事件来完成鼠标的移入和移出动作。程序代码如下。
键盘和鼠标总结PPT课件
• D7 Ins键
按奇数次为1,否则为0
第23页/共36页
2. 对第一类ASCII码键
(1)第一类键——ASCII码0~127 (2)处理方法:
• 将系统扫描码转换为ASCII码 • 低位字节为ASCII码,高位字节为系统扫描码
第24页/共36页
3. 对第二类ASCII码键
(1)第二类键——对应ASCII码128~255 (2)处理方法:
11.8.1鼠标的工作原理、连接方式和数据格 式
• 鼠标的工作原理
机械式鼠标
光电式鼠标
第31页/共36页
光机式鼠标
11.8.1鼠标的工作原理、连接方式和数据 格式
• 鼠标与主机的连接方式 • RS-232-C串行接口 • USB接口 • PS/2接口
第32页/共36页
11.8.1鼠标的工作原理、连接方式和数据格式
• 不形成代码,而直接完成相应操作
第27页/共36页
11.6.2 16H键盘中断处理程序
16H中断处理程序的功能调用
第28页/共36页
11.7 键盘缓冲区
32字节的键盘缓冲区及指针
第29页/共36页
11.8 鼠标
• 鼠标的工作原理、连接方式和数据格式 • 鼠标的驱动程序及其功能调用
第30页/共36页
• 直接将数字作为ASCII码 • 低位字节为ASCII码,高位字节为0
第25页/共36页
4. 对于不能用ASCII码表示的组合键和功能 键
(1)第三类键——组合键和功能键 (2)处理方法:
• 用0作为低位字节,扩展码作为高位字节
第26页/共36页
5. 对于特殊命令键
(1)第四类键——特殊命令键 (2)处理方法:
鼠标与键盘事件
七、键盘事件综合示例
检验输入
接上页
Private Sub Text_month_KeyPress(KeyAscii As Integer) If KeyAscii < 48 And KeyAscii <> 8 Or KeyAscii > 57 Then Beep : MsgBox "请输入数字“ KeyAscii = 0 End If End Sub Private Sub Text_passwd_KeyPress(KeyAscii As Integer) If KeyAscii < 48 And KeyAscii <> 8 Or KeyAscii > 57 Then Beep : MsgBox "请输入数字“ : KeyAscii = 0 End If End Sub Private Sub Text_year_KeyPress(KeyAscii As Integer) If KeyAscii < 48 And KeyAscii <> 8 Or KeyAscii > 57 Then Beep : MsgBox "请输入数字“ : KeyAscii = 0 End If ‘8代表退格符 End Sub Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then MsgBox “按下了回车符" If (Shift And 2) > 1 Then MsgBox “你按下了ctrl键" End Sub
五、keypress事件说明: keypress事件说明: 事件说明
Keypress事件:用于截获在文本框/ 组合框中输入的按键; Sub 控件名_keypress ([index as integer,] keyascii as integer ) 参数:([index as integer ,] keyascii as integer) a. index: 当控件是控件数组中的一个元素时,index代表在数组 是索引值,即下标 b. keyascii: 返回标准的ascii键码 可以用chr(keyascii) 将ascii 转化为相应的字符;或用 =asc(char) 将字符转为ascii码。(用于判定输入是否为某字符) 注意:keypress 事件不是指出所按字符在键盘上的物理位置,而 是传送一个字 符,故它可以判别大小写。 相反,keyup/ keydown能识别的是所按字符在键盘上的物理位置, 则大小写字符的keycode码是一样的。 (若要在keyup/ keydown 中判别字符的大小写,需判定是否为 shift +该键)
第六章键盘鼠标的程序设计
第6章键盘、鼠标的程序设计本章学习目标通过本章学习应理解VB可视化程序设计的中事件驱动程序设计的概念;理解鼠标、键盘事件的触发机制;掌握对鼠标和键盘进行编程的基本技术;掌握窗体与常用组件的重要键盘事件和鼠标事件;初步学会对一些常用VB组件进行程序设计,实现事件驱动的鼠标拖放功能和OLE的鼠标拖放功能。
在前面我们已经学习了通用过程和一些常用的事件过程,那么在本章,我们继续学习键盘和鼠标的有关事件过程。
在键盘事件的过程中可以处理当按下或释放键盘上某个按键时所执行的一些操作。
而鼠标的事件过程可以用来处理鼠标按钮和光标位置移动有关的一些操作。
Windows程序的工作模式,称为事件(也称消息)驱动方式。
所谓“事件”,是指作用于某个对象上的一种操作或动作,如运行程序时用鼠标单击窗体上菜单条的某个命令项时,“单击”(Click)这个动作就是作用在该命令项上的一个事件,也可以描述为该命令项发生了Click事件,当双击窗体上的某个命令按钮时,“双击”(Dblclick)就是作用在该命令按钮上的一个事件。
VB中的每个对象通常都可以响应多个不同的事件。
VB应用程序除了能响应鼠标的单击(Click)和双击(DbClick)事件外,还能响应多种其他鼠标事件和键盘事件。
本章主要介绍VB对象能够识别的3种键盘事件:KeyPress、KeyDown、KeyUp事件和3个鼠标事件:MouseDown、MouseUp、MouseMove事件。
此外,VB应用程序还可同时支持事件驱动的鼠标拖放功能和OLE的鼠标拖放功能。
本章介绍了VB提供的用于鼠标拖放操作处理的DragMode和DragIcon属性、Drag方法、DragOver和D)ragDrop事件。
同时,简要介绍了VB所支持的OLE拖放的实现方法。
6.1 键盘事件键盘事件是用户敲击键盘时触发的事件。
通常对于接受文本输入的控件,在键盘事件中进行编程检测输入数据的合法性或对于不同键值的输入实现不同的操作。
qt实验六鼠标和键盘事件
break;
label = new QLabel( "Wellcome!", this ); label->setBackgroundColor( white ); QFont f( "Helvetica", 16, QFont::Bold ); label->setFont( f ); label->setGeometry( 25, 70, 250, 100 ); label->setAlignment( AlignVCenter | AlignHCenter ); 在构造函数的实现的时候,我们对窗口的标题、背景、文字字形以及标签的字形、背景 色和显示方式位置作出了一些设置。 void MouseKeyEvent::mousePressEvent( QMouseEvent *e ) {
的提供是为了保证旧代码能够工作。我们强烈建议在新代码中不要使用它。 QEvent::DeferredDelete - 在这个对象被清理干净之后,它将被删除。 QEvent::Accel -子键按下,用于快捷键处理。QKeyEvent。 QEvent::Wheel - 鼠标滚轮转动,QWheelEvent。 QEvent::ContextMenu - 上下文弹出菜单,QContextMenuEvent。 QEvent::AccelAvailable - 在一些平台上 Qt 使用的内部事件。 QEvent::AccelOverride - Key press in child, for overriding shortcut key handling,
break;
case MidButton:
label->clear();
label->setText( "Mouse:MidButton Pressed!" );
键盘鼠标事件和图形
8.1.4 应用案例——使用方向键移 动坦克
❖ 【例 8.4】如图8.3所示,在窗体中画一个图 片框将其名称设置为picGrand,在图片框内 部再画一个图像框并起名叫imgTank。程序运 行的效果是:(具体内容请参照本书)
8.2件), 分别是Click、DblClick、MouseDown、 MouseUp和MouseMove。前面的章节中已经 讲述过关于Click、DblClick事件的内容。本 节主要讲述后面三个事件。
8.4 图形
❖ Visual Basic给用户提供了一些图形控件,用 户可以利用这些图形控件让自己的窗体界面 更加出彩。同时,Visual Basic也给用户提供 了一些绘制图形的语句,例如Pset、Line、 Circle等,利用这些语句用户甚至可以编写与 Windows自带的画图软件相仿的画图程序。
8.2.3 处理“鼠标移动”
❖ MouseMove事件在鼠标移动时被触发。其格 式为:
❖ Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)(具体内容 请参照本书)
8.3 拖放
❖ Visual Basic中除了如前所述的鼠标事件可以完成很多功能以外,实际上 还有一种操作方法可以用来完成某些功能,即拖放操作——使用鼠标器 将对象从一个地方拖放到另一个位置再放下。在整个“拖放”操作过程 中,用户首先在源对象上按下鼠标左键不放,然后把源对象拖放到目标 对象上释放(松开)鼠标键。为了有助于理解这种拖放,可以把整个拖 放过程分解成两个操作:一个是发生在源对象的“拖”操作;另一个是 发生在目标对象上的“放”操作,即把源对象“放”在目标对象上。在 字处理程序中,拖放操作的用途之一就是将文本从一个地方移到另一个 地方。另一个用途就是将不需要的东西拖到“回收站” 里,从而在屏幕 上将其清除。
键盘和鼠标事件
10.2.3 MouseMove事件 当用户在移动鼠标指针到控件上时触发
MouseMove事件,与该事件相关的事件还有 MouesEnter和MouseLeave事件分别在鼠标指针进 入控件和离开控件时发生。
【例10-4】设计一个程序。要求将鼠标指针指向 和离开按钮Button1时,按钮上显示的图片不同。 当鼠标在窗体上移动时,标签中实时显示当前指 针的坐标值(X,Y)。
MouseEnter:当鼠标指针进入控件时触发的事件。 MouseMove:当鼠标指针在控件上移动时触发的事件。 MouseHover/MouseDown/MouseWheel: MouseHover事件当鼠标指针悬停在控件上时被触发; MouseDown事件在用户按下鼠标键时被触发; MouseWheel事件在拨动鼠标滚轮并且控件有焦点时被 触发。 MouseUp:当用户在控件上按下的鼠标键释放时触发。 MouseLeave:当鼠标指针离开控件时触发。
2. KeyDown和KeyUp事件应用实例
【例10-2】设计一个数字文本加密程序。当用户 在文本框中输入一个字母字符时,程序自动将 其按一定的规律(算法)转换成其他字符并显 示到文本框中,在标签控件中显示原始字符。 按〈BackSpace〉键可删除光标前一个字符,标 签中的内容随之变化。按〈Enter〉键时显示信 息框,单击【确定】按钮结束程序运行。若用 户按下〈Ctrl〉+〈Shift〉+〈End〉组合键, 则直接结束程序运行。
确认退出", MessageBoxButtons.OKCancel, rmation) == DialogResult.OK) this.Close();
} }
10.2 鼠标事件
10.2.1 鼠标事件发生的顺序 当用户操作鼠标时,将触发一些鼠标事件。这些事件 的发生顺序如下: