https://www.codeproject.com/Articles...-Double-Buffer
Tip (by Tim McCurdy): SetStyle(ControlStyles.ResizeRedraw, true);
Setting this flag causes the control to repaint itself when resized.
But note that this page is 20 years old.

https://learn.microsoft.com/en-us/do...s-and-controls
TBH, perhaps strip out all the attempts to "optimise" the behaviour and see how the default behaves, especially when MS themselves say
For most applications, the default double buffering provided by the .NET Framework will provide the best results