private void ProcessClickCount(MouseEventArgs e) { var rect = RectUtil.GetArroundingRectangle(_prevMouseDownLocation, _doubleClickSize); var now = DateTime.Now; if (rect.Contains(e.Location)) { var span = now - _prevMouseDownTime; if (_clickCount < 4) { if (span.TotalMilliseconds <= _doubleClickTime) { ++_clickCount; } else { _clickCount = 1; } } else { _clickCount = 1; } } else { _clickCount = 1; } _prevMouseDownTime = now; _prevMouseDownLocation = e.Location; }