Since the first days of windows event programming it has always been a heirarchy for event processing that the form first, container second, contained controls next, controls in a container in the contained controls last.... The only way you can get away from that is not going to be clean. On MouseEnter on your control, remove the DragMove event handler binding and put your mouse click event on. On MouseLeave on your control, remove the left button event handler and put DragMove back on.