/// <summary>
        ///
        /// </summary>
        public bool OnMouseDoubleClick(MouseEventArgs e)
        {
            bool result = false;

            PointF drawingSpaceLocation = _pane.GraphicsWrapper.ActualSpaceToDrawingSpace(e.Location, true);

            if (_currentObjectBuilt != null)
            {
                _currentObjectBuilt.TrySelect(_pane.GraphicsWrapper.DrawingSpaceTransform, drawingSpaceLocation, _defaultAbsoluteSelectionMargin, !_pane.IsControlKeyDown);
            }
            else
            if (_currentObjectBuilt == null && _dragLastDrawingSpaceMouseLocation.HasValue == false)
            {// Only if dragging is not running try to perform typical selection.
                foreach (DynamicCustomObject dynamicObject in _dynamicCustomObjects)
                {
                    if (dynamicObject.TrySelect(_pane.GraphicsWrapper.DrawingSpaceTransform, drawingSpaceLocation, _defaultAbsoluteSelectionMargin, !_pane.IsControlKeyDown))
                    {
                        if (result == true)
                        {// Only one NEW selection per turn so deny this selection,
                            // but keep cycling to perform needed deselections.
                            dynamicObject.Selected = false;
                        }

                        result = true;
                    }
                }

                UpdateSelectedObjects();
                _pane.Invalidate();
            }

            return(result);
        }