原址:winform点击窗体上面任何地方都触发的事件是什么_已解决_博问_博客园
方法一: 用windows api 钩子程序 获取鼠标事件
方法二: 在form窗体的构造函数中注册所有子控件的鼠标事件到自身的click事件中
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)
{
if (
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);
}