protected bool BeginDrag(Control c) { // Avoid re-entrance; if (m_dragControl != null) { return(false); } m_startMousePosition = Control.MousePosition; if (!User32.DragDetect(c.Handle, StartMousePosition)) { return(false); } m_dragControl = c; c.FindForm().Capture = true; AssignHandle(c.FindForm().Handle); Application.AddMessageFilter(this); return(true); }