3.20 鼠标事件
从类 System.Windows.Forms.Control 派生的控件都有鼠标事件,控件的 Click 事件本质
上也是鼠标事件。一些控件还有单独的鼠标事件,例如 Form。鼠标事件有:
? MouseDown:如果鼠标位于控件区域,按下鼠标按键时产生该事件。
? MouseUp:如果鼠标位于控件区域,抬起鼠标按键时产生该事件。
? MouseMove:如果鼠标在控件区域移动,产生该事件。
? MouseEnter:鼠标进入控件区域,产生该事件。
? MouseLeave:鼠标离开控件区域,产生该事件。
鼠标事件处理函数一般有两个参数:
第一个参数 (object sender) 是产生该事件的对象的属性 Name的值,
例如,为 Form1 的 MouseDown 事件增加事件函数,
单击 Form1,第一个参数 sender 代表 Form1对象。
(MouseEventArgs e)是事件处理函数第二个参数,
代表事件的一些信息,事件不同, 所代表的信息也不相同,
鼠标按下事件处理函数中,
e.X 为发生事件时鼠标位置的 x坐标,e.Y为发生事件时鼠标位置的 y 坐标,
e.Button为 MouseButtons.Left , 表示单击了鼠标左键等等,
Right 和 Middle 则分别代表右键和中间键。
e.Clicks 为鼠标单击的次数,如果大于 2 次,则为双击。
例子 e3_12:
在窗体中的指定区域, 双击鼠标左键, 用 Label 控件显示双击鼠标的位置。
指定区域的左上角坐标为 (20,20),宽为 200,高为 200。
(1) 建立一个新项目。放 Label 控件到窗体。属性 Name=label1。
(2) Panel 控件 可以将 窗体分 为多个 区域。 放 Panel 控件 到窗体 ,属性 Location.X=20 ,
Location.Y=20 ,属性 Width=200,Height=200 ,属性 Name=p1。
(3) 为 Panel 的 MouseDown 事件增加事件函数如下:
private void p1_MouseDown( object sender,System.Windows.Forms.MouseEventArgs e)
{ if(e.Button==MouseButtons.Left&&e.Clicks>1)// 如果是双击左键
label1.Text="X:"+e.X.ToString()+",Y:"+e.Y.ToString();
}
(4) 编译,运行,分别在指定区域和区域外双击鼠标左键,看一下效果。分别在指定区域和
区域外双击鼠标右键,看一下效果。