鼠标事件处理
6种类型
MouseHover、MouseLeave、MouseEnter、MouseMove、MouseDown、MouseUp
如何定义事件
通过不同的Delegate描述上述事件:
MouseHover、MouseLeave、MouseEnter:EventHandler
MouseMove、MouseDown、MouseUp:MouseEventHandler
这两个Delegate分别被封装在不同的命名空间中:
EventHandler:封装在System中
MouseEventHandler:封装在System.Windows.Froms空间中
EventArgs类(被封装在System命名空间中)为MouseHover、MouseLeave、MouseEnter事件提供数据
MouseEventArgs类(被封装在System.Windows.Forms命名空间中)为MouseMove、MouseDown、MouseUp事件提供数据
第一种处理方法
MouseHover、MouseLeave、MouseEnter事件
定义:"组件名称"."事件名称 += new System.EventHandler("事件名称")";
具体代码例:Button1.MouseLeave += new System.EventHandler(Button1_MLeave);
完成事件定义后需要在程序中加入响应该事件的代码,否则程序编译时会报错
例:响应上述事件的基本结构
Private void button1_MLeave(Object sender,System.EventArgs e)
{
//此处加入响应事件的代码
}
第二种处理方法
MouseMove、MouseDown、MouseUp事件
定义:"组件名称"."事件名称 += new System.Windows.Forms.MouseEventHandler("事件名称")";
具体代码例:Button1.MouseMove += new System.Windows.Forms.MouseEventHandle(Button1_MLeave);
例:响应上述事件的基本结构
Private void button1_MMove(Object sender,System.Windows.Forms.MouseEventHandler e)
{
//此处加入响应事件的代码
}
鼠标相关事件中典型问题的处理办法
典型问题包括:读取鼠标的当前位置,判定哪个鼠标按键被按动。
判定鼠标位置
通过事件MouseMove处理,在MouseEventArgs类中提供了两个属性X、Y判定当前鼠标的横纵坐标
判定按键的按动情况
通过事件MouseDown处理,MouseEventArgs类中提供了一个属性“Buttons”来判定鼠标的按键情况
实例:
具体代码:
namespace Mouse_Example
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
this.txtCoordinateX.Text = Convert.ToString(e.X);
this.txtCoordinateY.Text = Convert