I have 5 ultra combos on the form bound to object collections that are initialized before the form is open and remain after the form is closed.
The first 3 work ok, but if I bind the last two, the form will hang the second time I open it. I think it's something specific to what I am binding to but I can't figure out what. If I change these two items to bind to the regular .net combo, it all works fine.
When it hangs, If I try to break into the debugger, I just get:
[In a sleep, wait, or join] > mscorlib.dll!System.Threading.WaitHandle.WaitAny(System.Threading.WaitHandle[] waitHandles, int millisecondsTimeout, bool exitContext) + 0x8f bytes System.dll!System.Net.TimerThread.ThreadProc() + 0x2f9 bytes mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state) + 0x66 bytes mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x6f bytes mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x44 bytes
You might want to check out the WinGrid Performance Guide and take a look at the section on recursive data sources and MaxBandDepth for more information.
After some more digging I found the problem. These lines were in the working controls but not the ones that crashed. Added them and the freezing stopped. I think something about the child objects was causing it to go haywire on the second load.