Databinding Comboboxes is slow
We have noticed that our UI's with lots of comboboxes take longer than those without to draw and display data. We ran ANTs to confirm yes, ComboBoxes are slower than other controls.
I LISTSERVED this and Ian Griffiths had a great work around: Draw the screen, not databound, start a ui timer, handle the tick on 1ms, bind then.
We tried this and it does give you the perception that the screen loads faster and not as 'jerky'. Here is his reply for those interested:
"Greg, have you considered not data binding when the form loads, and letting it show with no data, and then doing the data binding after it has loaded and displayed? That would remove the perception that the thing is drawing piecemeal, which would reduce how slow it 'feels'. (It won't actually make it load any faster, but perceived performance is all that really matters.) A window that looks complete instantly and then loads data shortly afterwards usually looks like it's loading faster than one that intermingles the initial drawing with the data binding.
The way to do this would be to set up a System.Windows.Forms.Timer in your form load handler, and in the Timer tick handler, that's where you do your data binding. Set the timer to a very short interval. (Shouldn't matter what the interval is - timer ticks are usually only delivered after important stuff like drawing has been completed.)
Alternatively, here's a hack...
Set the Opacity to 0. And then use the timer trick described above to set it to 1 after everything has loaded... However, that one has its own issues. A form which has had its opacity modified at some point will be a 'layered' window, and these have a number of differences in their redraw and perf characteristics from normal windows. They might end up feeling 'funny' as a result.
Another trick you might try is making the form invisible to start with and then making it visible on a timer event after everything has loaded..."
Thanks again Ian.