The issue can be resolved by placing StartDrag(e) inside protected override void OnMouseDown(MouseEventArgs e).
When the image is too large, significant lag occurs when zooming out and selecting a large area. Testing shows this is caused by e.Graphics.FillRectangle. Can an optional property be added, such as "FillSelectionArea," to provide more flexibility?