我有一个Windows窗体(C#)项目,其中有多个组合框/列表框等等,当窗体加载时填充。当窗体加载时延迟加载组合框
的问题是,组合框/列表框的加载缓慢,因为当窗体试图显示整个窗体不显示,直到所有的控制都被填充装载完成。这在某些情况下可能是20+秒。
如果有一个Form_finished_loaded类型的事件我可以把我的代码放在那里,但是我找不到在完成绘制基本控件之后触发的事件。
虽然我有一个要求 - 加载必须在主线程中完成(因为我从非线程友好的COM应用程序中获取项目)。
我发现了一个潜在的解决方案,但也许有更好的方法? 我可以在创建表单时创建一个System.Timer.Timer,并在大约1秒钟后调用第一个Tick,然后从该tick中填充列表。这使得表格有足够的时间在开始填充列表之前显示。
有没有人有任何其他技巧如何延迟加载的控制?
+1为BeginUpdate/EndUpdate提示。 – 2009-11-11 16:10:16
是不是BeginUpdate,EndUpdate用于在将大量项目顺序加载到控件中时挂起绘画,而不是用于长时间运行的过程?显示事件为+1。 – 2009-11-11 16:46:56
得到它的工作! 当添加巨大的集合时,BeginUpdate/EndUpdate产生了巨大的差异。高达10倍的改进。 – 2009-11-11 22:40:55