[音乐]
在程序运行的过程中,产生事件的主体很多
但是程序的大部分输入,都是来自于键盘或者鼠标 今天我们来着重学习一下有关键盘和鼠标的各种事件
在正式学习鼠标事件和键盘事件之前,我们先来
了解一下事件的参数这个概念 我们之前在例题中遇到的事件都是比较简单的
一般没有特殊参数 事件要么发生,要么没发生,是二元的
而我们马上就要学到的鼠标和键盘事件,属于较为复
杂的事件,带有特殊参数,不光要判断事件是否发生了
还要确定事件是如何发生的 现在我们先来看一下和鼠标有关的事件
MouseEnter 是当鼠标进入控件的边界时产生的
MouseHover 是当鼠标悬停在控件时、
上时产生的; MouseLeave 当 鼠标离开控件时产生的。
对这三 个消息来说,大家、 同学们有没有见过有的程序上啊
有些按钮,鼠标悬停上去就会闪亮 离开时就会恢复,就是应用了这几个消息
下面一个是 MouseDown
是当鼠标位于控件内,且按下鼠标按钮,无论哪一个,就是无论左键、 右键还 是中键时产生的。
还有 MouseUp,当鼠标位于控件内
松开鼠标按钮,无论左键、 中键还是右键时产生的
MouseMove: 当鼠标位于控件内,并且移动鼠标时产生的
我们现在再看一下一个鼠标事件处
理方法的一般形式,可以看到这个方法有两个参数,一个是 sender
另外一个参数是 MouseEventArgs 类型的,这两个参数
都起的是什么作用呢 sender
参数是指事件发生的主体,哪个控件接收到这个消息 sender 就是指哪个控件。
而 MouseEventArgs 还有很多属性,包括
Button: 按下的是哪个鼠标按钮
Clicks: 按下并释放鼠标按钮的次数 Delta:
就是鼠标轮已转动的制动器数,就是我们平时鼠、 滚
滚动鼠标滚轮的时候,滚动了多少下 Location:
鼠标在产生鼠标事件时的位置 X: 是鼠标产生鼠标事件时的
x 坐标; Y 是 y 坐标。
我们现在再看看 有哪些键盘事件?
KeyDown 是在按下按键时产生的 KeyUp
是在释放,也就是松开我们键盘上的按键时产生的 还有个事、
事件是 KeyPress: 在
按下键时产生,出现在 KeyDown 事件之后,KeyUp
事件之前 同学们可能会有点儿疑惑,KeyDown 和
KeyPress 这两个事件 感觉差不多啊,有必要区分这么清楚吗?那么我们现在就看看这两个
事件的主要区别在哪里?KeyDown 着重表明了某个物理
上的按键被按下了,它可以捕获键盘上几乎所有的按键
而且呢,它还可以捕获组合键,啊但是它不能判断
键入字母的大小,返回的总是大 写字母,因为大小写是跟我这个按键的组合是有关系的
但是呢它可以区分 小键盘和主键盘的数字字符
而 KeyPress 这个事件着重表明了是某个字符被输
入,注意它和 KeyDown 的区别,一个是按键被按下了,一个是某个字符被 输入了。
它呢只能捕获单个字符 而不显示键盘的物理状态,比方说是不是同时又把
SHIFT 按了, SHIFT 键 同时按下啦?但是
它可以将每个字符的大小写形式作为不同的键代码来解释 比如说根据这个
CPAS LOCK 这个键的当前状态
但是呢它不区分小键盘和主键盘的数字字 符,因为这两个字符对于这个
KeyPress 这个 事件来说,它输入的都是一个同样的东西,都是一个数字字 符。
现在我们再看一下 这个键盘消息有哪些参数,这些参数的具体含义是什么
先看 KeyEventArgs 有哪些
参数?首先呢 Alt 是指示是否按下 Alt 键
Control 是指是否按下 Ctrl 键
Handled 是指示是否处理过此事件,下面会告诉大家
这个参数究竟有什么用途?还有 KeyCode,获取 KeyDown
或 KeyUp 事件的键盘代码; KeyData
是获取的是键数据 KeyValue 获取的是事件的键盘值。
这三个参数,键盘代码 键数据、 键盘值可能已经把大家绕晕了吧,究竟什么区别啊
不要着急,我们在后续的例题中,会着重阐述这三个 参数的各自作用。
再看 Modifiers 是获取 KeyDown 或者
KeyUp 事件的修饰符标志 它可以只是按下的 Ctrl、 Shift 还有 Alt 键的组合。
还有 Shift,单独 Shift 是指示 是否按下了 Shift 键。
KeyPressEvent Args 里面有 Handled
的,指示该事件是否被处理过 如果未处理该事件,则会将它发送到操作系统进行默认处理
这个参数的用处是,如果我们人为地在程、 程序里将 Handled
的参数 设置为 true,我们可以取消 KeyPress 事件,因为它就不会再把这个事件发送给操作系统了,起到一个按键
按下,可以不起作用,起到这样的功能 第二个参数
KeyChar,它返回按下键的 ASCII 字符。
现在我们回顾一下本次课的学习要点
我们了解了事件的参数的概念,学习了鼠标事件和键盘事件的主要类型 和参数,另外对
KeyDown 和 KeyPress 两个事件的主要区别做出了阐述
谢谢大家