У меня есть winform с некоторыми элементами управления.
Пока курсор входит в форму (границы формы, включая содержимое формы), я хочу вызвать определенную задачу.Когда курсор покидает форму, я хочу вызвать другую задачу.
Очевидно, что эти события в форме не будут работать: (потому что, например, 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;
}
Существует также проблема с обнаружением в содержимом формы (когда я перемещаюсь между элементами управления).
Что мне не хватает?
обновление: я не хочу использовать таймеры!