2009-01-10 77 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(); 

这种事情。

相关问题