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); }