2013-03-04 60 views
2

我需要在運行時在應用程序中創建約720個按鈕或標籤。 這裏的問題是,當我啓動我的應用程序或使其(重新)可見時,我可以看到 按鈕被加載。C#對象創建需要時間

我該如何避免或加快速度?

+6

你究竟在做什麼需要720個按鈕? – PhonicUK 2013-03-04 14:35:27

+2

您不應該嘗試減少創建一個按鈕所需的時間。相反,減少按鈕的數量。這看起來像是一個真正的設計缺陷。 – 2013-03-04 14:36:43

+0

你在使用Forms還是WPF? – nvoigt 2013-03-04 14:37:23

回答

3

最好的辦法是使用Control.SuspendLayout方法,你已經開始,以填補你的按鈕控制之前,比Control.ResumeLayout你完成

+2

+1只有人能真正回答OP的問題(到目前爲止,其他人對於他是否有一個好的設計或多或少的評論,應該在評論部分進行評論......) – marr75 2013-03-04 14:41:50

+2

@ marr75 - 我同意但是這個**是一本教科書[XY-Problem](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378)。 – 2013-03-04 14:45:03

+0

當然。質疑他的設計和詢問更多信息對於評論部分來說都是完美的項目,儘管(如果他必須通過回答問題並回答問題,那麼受訪者的投資會明顯更高)。 – marr75 2013-03-04 14:50:02

2

您可以嘗試在加載控件之前暫停佈局,然後再繼續。這應該加快加載:SuspendLayout

下面是這可能被證明是有用的閱讀鏈接:(TIPS改善的Wndows窗體應用程序性能) -

Winforms performance

+0

每個'Form1.Designer.cs'也顯示如何使用它。 – 2013-03-04 14:37:55

1

這幾乎是不可能的,你需要所有該按鈕立即

如果您正在設計用戶界面,請將其分割爲選項卡,其中選項卡表示UX邏輯組。

如果你不設計 UI,使用控制是不是一個好的選擇,選擇別的東西在屏幕上繪製,它會快很多。

0

有一些很好的提示後,在這裏你可以通過加快應用程序。

http://devcomponents.com/blog/?p=361

這麼說,我真的會提高人們對到底爲什麼你需要加載720個鍵的問題。您很可能只會使用表單上5%的可用控件。找出減少它們的好方法。

0

如果您想「隱藏」加載所有控件的過程,只需使用啓動畫面,以便用戶可以看到應用程序正在加載,但在加載完成之前無法看到所有實際組件。

PS:考慮將組中的按鈕分開,因爲我需要在一個位置使用所有按鈕(也許在選項卡中拆分?並在按下該選項卡時加載它們)好吧,考慮一下。