Buenas.
Para darte cuenta de lo q digo, crea un proyecto con un formulario normal y ponle esto
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Print X & " - " & Y
End Sub
Luego estira el formulario y ejecutalo.
Pasa el mouse de punta a #### rapido, ahi veras que solo aparecen algunas coordenadas del mouse. Dependiendo la velocidad q lo pases.
Ahora ponle un picturebox en el medio (no muy grande) y agrega
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Picture1.BackColor = RGB(255,0,0)
End Sub
Ahora bien pasa el mouse rapido sobre el picturebox, veras que la mayoria de las veces no cambia de color.
Si solo piensas usar el control para tu aplicacion una solucion no demasiado apropiada, pero sencilla es agregarle una funcion publica al control, que lo desactive y esta la llamas desde el evento mousemove del formulario, aunque si tus controles estan al seca del borde puede traer problemas.
Otra mas complicada aunque mas adecuada y que te mencione anteriormente es poner un timer que valla chequeando la posicion del mouse. Cuando se mueve el mouse se activa y empieza a controlar la posicion hasta que se encuentra fuera y ahi se desactiva.
Para esto puedes usar la api GetCursosPos. Nota que esta funcion devuelve los valores en pixeles, si lo multiplicas por 15 tendras el valor en twips, aunque mejor es multiplicarlo por Screen.TwipsPerPixelX y Screen.TwipsPerPixelY
A esos valores le restas el left y top del form y le sumas los del control. Puede que halla que sumas un poco mas por la barra de titulos y los bordes. Luego comparas los valores iniciales con esos si se encuentran entre el left y left + width (= vertical)
estara adentro, sino estara afuera.
Bueno, Espero que se enteinda un poco mejor
Cualquier cosa escribe.
Saludos