I have tried adding Me.SuspendLayout() prior to enabling/disabling controls (buttons with graphics seem to flicker when you Disable/Enable them), then .ResumeLayout after my settings. I have tried turning on DoubleBuffering which seemed to do nothing.
I do not have the fastest machine or best graphics card available. I use other development environments that compile to Win32 code and do not exhibit this behavior. Yes I know .NET is compiled/optimized at runtime, but once compiled I would expect it to perform at the same level as a native Win32 generate application.
Am I expecting too much from .NET?
Ben
1) Setting DoubleBuffered = True on the parent form. This will cause all of the drawing to be done on a buffer and then painted to the screen to help reduce flickering.
2) Research into the LockWindow() method of the User32.dll (it's a windows API call). You can make the IP call by passing the .Handle of the parent form and it will prevent the entire form from painting. Then, when you know that all of the controls are visible, you can call the LockWindow() again and pass IntPtr.Zero to unlock the window and all of the controls will paint at the same time.