public override void DoDragging(Point screenPoint)
        {
            base.DoDragging(screenPoint);
            Form f = View.GridControl.FindForm();
            IDragObjectTarget target = f.GetChildAtPoint(f.PointToClient(screenPoint)) as IDragObjectTarget;

            if (target != null && !View.GridControl.Equals(target))
            {
                if (currentTarget != target)
                {
                    if (currentTarget != null)
                    {
                        currentTarget.StopDrag();
                    }
                    currentTarget = target;
                }
                target.DoDragging(DragObject, Size.Empty, screenPoint);
            }
            else
            {
                if (currentTarget != null)
                {
                    currentTarget.StopDrag();
                }
                currentTarget = null;
            }
        }
 public override void CancelDrag()
 {
     if (currentTarget != null)
     {
         currentTarget.CancelDrag(DragObject);
         currentTarget = null;
     }
     base.CancelDrag();
 }
 public override void EndDrag()
 {
     if (currentTarget != null)
     {
         currentTarget.DoDragDrop(DragObject);
         currentTarget = null;
     }
     base.EndDrag();
 }
 protected override void StopDragging(bool hideDrag)
 {
     base.StopDragging(!IsDraggingFromOutside);
     if (draggedColumn != null)
     {
         draggedColumn.Dispose();
         draggedColumn = null;
     }
     currentTarget = null;
 }