foreach (var item inthis.Controls)
((Control)item).MouseClick+= new MouseEventHandler(Form1_MouseClick);
方法三: 重写WndProc
/// <summary>
/// windows消息窗体 屏蔽鼠标操作
/// </summary>
/// <paramname="m"></param>
protected override void WndProc(ref Message m)
m.Msg== 0x201 ||
m.Msg== 0x202 ||
m.Msg== 0x203 ||
m.Msg== 0x204 ||
m.Msg== 0x205 ||
m.Msg== 0x206 ||
m.Msg== 0x207 ||
m.Msg== 0x208 ||
m.Msg== 0x209)
return;
base.WndProc(ref m);
方法二: 在form窗体的构造函数中注册所有子控件的鼠标事件到自身的click事件中。/// windows消息窗体 屏蔽鼠标操作。方法一: 用windows api 钩子程序 获取鼠标事件。方法三: 重写WndProc。
先说说需求,也就是我们要达到的效果,希望扩展按钮控件,增加一些属性,但同时我们希望默认事件仍使用
Click
事件,不过,在事件参数中,我们希望能够传递更多的信息,而不是Button.
Click
默认的参数。
当然,我们首先要写一个自定义的事件参数,为了简单起见,我们的自定义按钮控件,增加一个TagNumber属性,它传递一个整型数据,当我们处理控件的
Click
事件,能够从事件参数类实例中取得我们...
[code="
c#
"]button.
Click
+= new System.EventHandler(btn_
Click
);
private void btn_
Click
(object sender, EventArgs e)
//EventArgs继承自MouseEventArgs,所以可以强转
MouseEventArgs Mouse_e = (MouseEventArgs...
同时在
窗体
的InitializeComponent( )方法中自动生成代码
this.button1.
Click
+= new System.EventHandler( this.button1_
Click
);