我有一個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