private bool ShowItemDropPoint(Point ownerClientAreaRelativeDropPoint) { int i = GetItemInsertionIndex(ownerClientAreaRelativeDropPoint); if (i >= 0) { ToolStripItem item = _owner.Items[i]; RelativeLocation relativeLocation = ComparePositions(item.Bounds, ownerClientAreaRelativeDropPoint); Debug.WriteLineIf(ToolStrip.s_itemReorderDebug.TraceVerbose, "Drop relative loc " + relativeLocation); Debug.WriteLineIf(ToolStrip.s_itemReorderDebug.TraceVerbose, "Index " + i); Rectangle insertionRect = Rectangle.Empty; switch (relativeLocation) { case RelativeLocation.Above: insertionRect = new Rectangle(_owner.Margin.Left, item.Bounds.Top, _owner.Width - (_owner.Margin.Horizontal) - 1, ToolStrip.s_insertionBeamWidth); break; case RelativeLocation.Below: insertionRect = new Rectangle(_owner.Margin.Left, item.Bounds.Bottom, _owner.Width - (_owner.Margin.Horizontal) - 1, ToolStrip.s_insertionBeamWidth); break; case RelativeLocation.Right: insertionRect = new Rectangle(item.Bounds.Right, _owner.Margin.Top, ToolStrip.s_insertionBeamWidth, _owner.Height - (_owner.Margin.Vertical) - 1); break; case RelativeLocation.Left: insertionRect = new Rectangle(item.Bounds.Left, _owner.Margin.Top, ToolStrip.s_insertionBeamWidth, _owner.Height - (_owner.Margin.Vertical) - 1); break; } _owner.PaintInsertionMark(insertionRect); return(true); } else if (_owner.Items.Count == 0) { Rectangle insertionRect = _owner.DisplayRectangle; insertionRect.Width = ToolStrip.s_insertionBeamWidth; _owner.PaintInsertionMark(insertionRect); return(true); } return(false); }