键盘事件处理
键盘事件在用户按下键盘上的键时发生,可分为两类。
第一类是KeyPress事件,当按下的键表示的是一个ASCII 字符时就会触发这类事件,可通过它的 KeyPressEventArgs 类型参数的属性 KeyChar 来确定按下键的 ASCII 码。
使用 KeyPress 事件无法判断是否按下了修改键(例如 Shift,Alt 和 Ctrl 键),为了判断这些动作, 就要处理KeyUp 或KeyDown事件, 这些事件组成了第二类键盘事件。 该类事件有一个KeyEventArgs类型的参数,通过该参数可以测试是否按下了一些修改键、功能键等特殊按键信息。
- KeyPressEventArgs类的主要属性(KeyPress事件的一个参数类型):
- Handled属性:用来获取或设置一个值,该值指示是否处理过KeyPress事件;
- KeyChar属性:用来获取按下的键对应的字符,通常是该键的ASCII码;
- KeyEventArgs类的主要属性(KeyUp和 KeyDown事件的一个参数):
- Alt属性:用来获取一个值,该值指示是否曾按下Alt键;
- Control属性:用来获取一个值,该值指示是否曾按下Ctrl键;
- Shift属性:用来获取一个值,该值指示是否曾按下Shift键;
- Handled属性:用来获取或设置一个值,该值指示是否处理过此事件;
- KeyCode属性:以 Keys枚举型值返回键盘键的键码,该属性不包含修改键(Alt、Control和 Shift键)信息,用于测试指定的键盘键;
- KeyData 属性:以 Keys 枚举类型值返回键盘键的键码,并包含修改键信息,用于判断关于按下键盘键的所有信息;
- KeyValue属性:以整数形式返回键码,而不是Keys枚举类型值。用于获得所按下键盘键的数字表示;
- Modifiers 属性:以 Keys 枚举类型值返回所有按下的修改键(Alt、Control 和 Shift 键),仅用于判断修改键信息。
鼠标事件处理
对鼠标操作的处理是应用程序的重要功能之一,在VisualC#中有一些与鼠标操作相关的事件,利用它们可以方便地进行与鼠标有关的编程
- MouseEnter事件:在鼠标指针进入控件时发生;
- MouseMove事件:在鼠标指针移到控件上时发生。事件处理程序接收一个MouseEventArgs类型的参数,该参数包含与此事件相关的数据。该参数的主要属性及其含义如下:
- Button属性:用来获取曾按下的是哪个鼠标按钮。该属性是MouseButtons枚举型的值, 取值及含义如下:
- Left(按下鼠标左按钮)
- Middle(按下鼠标中按钮)
- Right(鼠标右按钮)
- None(没有按下鼠标按钮)
- XButton1 (按下了第一个XButton按钮, 仅用于Microsoft智能鼠标浏览器)
- XButton2(按下了第二个XButton按钮,仅用于 Microsoft智能鼠标浏览器)
- Clicks属性:用来获取按下并释放鼠标按钮的次数;
- Delta属性:用来获取鼠标轮已转动的制动器数的有符号计数。制动器是鼠标轮的一个凹口;
- X 属性:用来获取鼠标所在位置的x坐标;
- Y 属性:用来获取鼠标所在位置的y坐标;
- Button属性:用来获取曾按下的是哪个鼠标按钮。该属性是MouseButtons枚举型的值, 取值及含义如下:
- MouseHover事件:当鼠标指针悬停在控件上时将发生该事件;
- MouseDown事件:当鼠标指针位于控件上并按下鼠标键时将发生该事件。事件处理程序也接收一个MouseEventArgs类型的参数;
- MouseUp 事件:当鼠标指针在控件上并释放鼠标键时将发生该事件。事件处理程序也接收一个MouseEventArgs类型的参数;
- MouseWheel事件:在移动鼠标轮并且控件有焦点时将发生该事件。该事件的事件处理程序接收一个MouseEventArgs类型的参数;
- MouseLeave事件:在鼠标指针离开控件时将发生该事件。