C# WinForm窗体任意位置点击事件

来源:互联网 发布:万人迷网络电话软件 编辑:程序博客网 时间:2024/04/30 07:02

原址:http://q.cnblogs.com/q/50865/


方法一: 用windows api 钩子程序 获取鼠标事件

可参考: http://wenku.baidu.com/link?url=znD_SCcYw35LIqBoU3rL5HRVYJIjJxbx3kG7RxSPhEU83vtsvV0mKnx8QRIzyBhNXseDSiBrim3lYnuwsN748WDyLXZ6bJ_ji1KdwsD8JUO


方法二: 在form窗体的构造函数中注册所有子控件的鼠标事件到自身的click事件中

foreach (var iteminthis.Controls)

{

        ((Control)item).MouseClick+=new MouseEventHandler(Form1_MouseClick);

}

方法三: 重写WndProc

 ///<summary>

        /// windows消息窗体 屏蔽鼠标操作

       ///</summary>

        ///<paramname="m"></param>

        protectedoverride 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);

 

        }
0 0
原创粉丝点击