Just for anyone with a similar question in the future, I managed to resolve this quite simply. Upon the OnScroll event method, simply invalidate the BufferedGraphics object by disposing it, and reset it back to null. Invalidate the whole component, and when constructing the new BufferedGraphics object, set the targetRectangle parameter's X and Y values to the respective AutoScrollPosition values. Why this isn't mentioned elsewhere, I don't know.