Mouse de controle pai entrar / sair de eventos com controles filho

Eu tenho um aplicativo WinForms do C # .NET 2.0. Meu aplicativo tem um controle que é um contêiner para dois controles filho: um rótulo e algum tipo de controle de edição. Você pode pensar assim, onde a caixa externa é o controle pai:

+---------------------------------+ 
| [Label Control]  [Edit Control] |
+---------------------------------+

Eu estou tentando fazer algo quando o mouse entra ou sai do controle pai, mas eu não me importo se o mouse se move em um de seus filhos. Eu quero um único sinalizador para representar "o mouse está em algum lugar dentro do pai ou filhos" e "o mouse foi movido fora dos limites de controle pai".

Eu tentei manipular MouseEnter e MouseLeave no pai e ambos os controles filho, mas isso significa que a ação começa e termina várias vezes como o mouse se move no controle. Em outras palavras, eu entendo isso:

Parent.OnMouseEnter      (start doing something)
Parent.OnMouseLeave      (stop)
Child.OnMouseEnter       (start doing something)
Child.OnMouseLeave       (stop)
Parent.OnMouseEnter      (start doing something)
Parent.OnMouseLeave      (stop)

Os eventos OnMouseLeave intermediários causam alguns efeitos indesejáveis, já que o que estou fazendo é iniciado e depois interrompido. Eu quero evitar isso.

Eu não quero capturar o mouse como o pai recebe o mouse, porque os controles filho precisam de seus eventos de mouse, e eu quero menu e outras teclas de atalho para o trabalho.

Existe uma maneira de fazer isso dentro do .NET framework? Ou eu preciso usar um gancho do mouse do Windows?

questionAnswers(5)

yourAnswerToTheQuestion