我有一个包含一些控件的winform窗体。
当光标进入窗体(包括窗体内容)时,我想触发特定任务。
当光标离开窗体时,我想触发另一个任务。
显然,在窗体上设置这些事件是行不通的:(例如,当我从窗体本身移动到其他控件时,会触发MouseLeave)。
我也尝试过使用类似问题中出现的 IMessageFilter 接口,但是没有给我所需的结果!问题在于检测鼠标何时完全离开窗体。
当光标进入窗体(包括窗体内容)时,我想触发特定任务。
当光标离开窗体时,我想触发另一个任务。
显然,在窗体上设置这些事件是行不通的:(例如,当我从窗体本身移动到其他控件时,会触发MouseLeave)。
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;
}
在表单内容中(当我在控件之间移动时),也存在检测问题。
我错过了什么?
更新:我不想使用计时器!