Well it turns out that all the alternative techniques suggested in this thread, including my own suggestions, don't make a significant difference. Drawing rectangles, drawing lines, using a graphics path or using a texture brush are all good alternatives and worth knowing about. But in the end the time to execute a Refresh depends almost entirely on the number of pixels whose colour has to be changed. Even re-clearing the background, while unnecessary, doesn't make much difference to performance because the pixels are the same. On top of that, timing code for performance remains a tricky business in DotNet and can easily lead to wrong conclusions.

BB