protected override void WndProc(ref Message m)
 {
     //WM_MOUSEMOVE = 0x200
     //WM_LBUTTONDOWN = 0x201
     //WM_LBUTTONUP = 0x202
     //WM_NCHITTEST = 0x84
     if (m.Msg == 0x200 || m.Msg == 0x201 || m.Msg == 0x202 || m.Msg == 0x84)
     {
         //Check if Parent is not nul, pass these messages to the parent
         if (Parent != null)
         {
             m.HWnd = Parent.Handle;
             Parent.WndProc(ref m);
         }
         if (m.Msg == 0x200 && !entered)
         {
             entered = true;
             Parent.OnMouseEnter(EventArgs.Empty);
         }
         else
         {
             entered = false;
         }
     }
     else if (entered)
     {
         entered = false;
     }
     base.WndProc(ref m);
 }