Modify your code so that before calling Invalidateany of the three controls, one common raster buffer is created (presumably as a static member of your control class), and then call Invalidateon each of the controls.You Paintcan use a static bitmap buffer inside the control , and it doesn't matter in what order the event fires Paint.
Invalidate , , WM_PAINT . Windows, , , Windows . , .
, : Paint ( , Paint), , - , , Invalidate, , .
(a Bitmap PictureBox - ), Paint ( Graphics.DrawImage BitBlt - ).
, , , ( " " ). . Paint .