我有一个WinForm的一些控件。
当光标进入窗体(窗体边界,这包括窗体的内容)时,我想触发特定的任务。 当光标离开窗体时,我想触发另一个任务。事件冒泡 - 儿童控制Mousehover事件
显然seeting的形式,这些事件将无法工作:(因为,例如,当我从形式本身转移到其他控制鼠标离开会引发BW)
this.MouseEnter += (sender, e) =>
{
//do stuff
};
this.MouseLeave += (sender, e) =>
{
//do stuff
};
我试过拉索接口IMessageFilter如出现类似问题,但没有给我所需的结果! 问题是当鼠标完全离开窗体时发现。
public bool PreFilterMessage(ref Message m)
{
switch (m.Msg)
{
case WM_MOUSEMOVE: //or other messages
bool z = myForm.Bounds.Contains(Cursor.Position); //This didn't help
}
eturn false;
}
在表单内容(当我在控件之间移动时)也有检测问题。
我错过了什么?
更新:我不想使用计时器!
您可能必须使用计时器来确定您是否仍在表单的范围内。此问题已在[此处](http://stackoverflow.com/q/2015101/699423) – 2011-04-13 22:02:19
之前询问过我不想使用任何计时器 – 2011-04-13 22:16:17
您应该使用计时器。 – 2011-04-14 00:01:29