The design-time will forward the MouseEnter and MouseLeave messages to your control by default. The MouseMove message is blocked by the designer. You can get MouseDown and MouseUp messages in your control if you override GetHitTest method in your designer and return true, as follows:
protected override bool GetHitTest( Point point )
{
return NeedMouseDown( point );
}
Contributed from George Shepherd's Windows Forms FAQ