2009-01-10 37 views
2

從Form1中打開Form2的快速而有效的方法是什麼?從表單打開表單的最快方法是什麼?

我工作在WinCE(有限的內存和CPU功率),所以這變得重要。

+0

此問題可能對您有用:http://stackoverflow.com/questions/280579/c-beginner-help-how-do-i-pass-a-value-from-a-child-back-以父母的形式#280586 – 2009-01-10 14:39:40

回答

1

最簡單的辦法:

OtherFormClass NewForm = new OtherFormClass(); 
NewForm.Show(); 

如果你能處理的內存,你可以在後臺和彈出需要時創建表單。這應該給用戶一個很好的,快速的體驗。

可能有其他優化來緩解內存壓力。

+0

米奇 - 好主意 – 2009-01-10 15:20:07

0

如果您希望表單在用戶響應速度方面更快打開,並且您可以處理內存開銷,您可能會考慮「預加載」表單。在應用程序的啓動過程中實例化表單,並將表單緩存在全局變量中(或將其作爲單例並創建一個實例)。這會增加應用程序的啓動時間,但是當您稍後顯示錶單時可以提高響應速度。如果表單有很多控件調用show,然後在啓動時隱藏表單,也會預加載表單控件,從而進一步減少了隨後顯示錶單的時間。

在完整的.net框架中不推薦使用這種方法!

2

根據您的要求,您可能會欺騙您的用戶在應用程序加載時看到閃屏。在此期間,您將在後臺實例化重要表單。這種方法應該會給你多一些額外的時間,大多數用戶並不認爲這是「緩慢」。用戶通常會認爲,如果應用程序在之後合理快速啓動,則應用程序啓動速度會變慢

0

嘗試緩存表單。殺手部分是創建窗體(創建窗口句柄,例如運行InitializeComponent)。如果您在應用程序啓動時創建表單,那麼在稍後顯示錶單時,您會注意到一小部分(但尚未明顯的)性能提升。這顯然是以啓動時間爲代價的。

因此,在啓動時:

Form1 form = new Form1(); 
FormStore.Add(form); 

及更高版本:

Form1 form = FormState.GetForm<Form1>(); 
form.Show(); 

這種事情。

相關問題