score:2

Accepted answer

When you erase the points from the path you are doing so by copying them to a new path, excluding the ones you want to erase. But you are not also copying the corresponding point type information from the first path; instead you are resetting all the point types to 1, for whatever reason. This loses the information about where each figure within the path starts. So what happens is the new path sees one long connected figure, which explains what you are seeing.
If you want to erase the first n points from the path, you might try something like this instead:

private void btnErase_Click(object sender, EventArgs e)
{
    int numberOfPointsToErase = 20;

    if (_drawingPath.PointCount > numberOfPointsToErase)
    {
        _drawingPath = new GraphicsPath(
            _drawingPath.PathPoints.Skip(numberOfPointsToErase).ToArray(),
            _drawingPath.PathTypes.Skip(numberOfPointsToErase).ToArray()
        );
    }
    else
    {
        _drawingPath.Reset();
    }

    this.Invalidate();
}

Related Query

More Query from same tag