日期:2014-05-19  浏览次数:20748 次

用户控件Dock设置了Fill,覆盖了底层Form的鼠标移动事件,该怎么处理?
WinForm中,
用户控件Dock设置了Fill,
用户控件上面有有几十个其他控件,

这样用户控件覆盖了底层Form的鼠标移动事件,
用户控件上的几十个控件覆盖了用户控件的鼠标移动事件,
要怎样才能把Form的鼠标移动事件暴露出来?
求一个很简易的办法

------解决方案--------------------
最简单的方法,把每个空间的mousemove都注册到你的那个方法上就可以了
------解决方案--------------------


this.button1.MouseMove += new MouseEventHandler(Form1_MouseMove);
......
------解决方案--------------------
foreach(Control cr in this.Controls)
{
if(cr is Button)
cr.MouseMove+=new MouseEventHandler(Form1_MouseMove);
}
------解决方案--------------------
主窗口实现IMessageFilter接口即可。
------解决方案--------------------
不清楚,帮顶
------解决方案--------------------
不都说了么,主窗口实现IMessageFilter接口即可。

别人提个思路,剩下的要自己去研究,有这几天功夫查资料做实验早都搞定了!
------解决方案--------------------
事件冒泡
IMessageFilter也可以
------解决方案--------------------
只知道注册事件,帮顶