protected ToolBarDockArea GetClosestArea(Point ptScreen, ToolBarDockArea preferred) { if (preferred != null) { Rectangle p = preferred.RectangleToScreen(preferred.ClientRectangle); p.Inflate(8, 8); if (p.Contains(ptScreen)) { return(preferred); } } Rectangle l = _left.RectangleToScreen(_left.ClientRectangle); l.Inflate(8, 8); Rectangle r = _right.RectangleToScreen(_right.ClientRectangle); r.Inflate(8, 8); Rectangle t = _top.RectangleToScreen(_top.ClientRectangle); t.Inflate(8, 8); Rectangle b = _bottom.RectangleToScreen(_bottom.ClientRectangle); b.Inflate(8, 8); if (t.Contains(ptScreen)) { return(_top); } if (b.Contains(ptScreen)) { return(_bottom); } if (l.Contains(ptScreen)) { return(_left); } if (r.Contains(ptScreen)) { return(_right); } return(null); }