Refresh without erasing

Goal: redraw only part of a canvas. (eg, just one pixel)
But to draw anything requires(?) triggering the canvas’ Paint event (because only the Paint event gets access to the canvas’ Graphics method.)
And to trigger the Paint event requires calling either Refresh or Invalidate.
But when I trigger the Paint event with either Refresh of Invalidate the whole canvas (it’s foreground) is erased before the partial redraw is possible.
The question is: how can I get to the Paint event without erasing the whole canvas?
Or is there any way to redraw part of a canvas (with or without triggering Paint?)

Hi Daniel,

yes you can use Canvas.Invalidate(X As Integer, Y As Integer, Width As Integer, Height As Integer [,EraseBackground As Boolean]).