通过在主GUI之后创建隐藏的GUI元素来更快地启动Winforms,而不会牺牲GUI设计器

时间:2011-12-01 20:23:35

标签: c# winforms performance optimization startup

我有一个程序,它使用许多隐藏的GUI组件。例如,所有菜单项和打印机对话框/组件(仅占用至少50ms)。总的来说,我猜大约300毫秒(或40%)的整个程序的启动是由于所有隐藏的东西。

我想做的是在绘制主要的直接可见GUI之后创建这些(在this thread中提到了类似的建议)。但是,在我在GUI设计器中添加/更改元素后,Visual Studio编辑器显然会将其恢复为“正常”,并在InitializeComponent()函数中重新创建所有GUI小部件。

是否有可能实现我想要的,也许是通过封锁Visual Studio不允许“触摸”的特定GUI小部件,同时让剩下的部分供VS玩?这样,我就可以在不牺牲GUI设计人员的便利性的情况下获得完整的性能。或者也许有更好的方法?

1 个答案:

答案 0 :(得分:2)

你可能最好不要立即使用你不需要的控件,并将它们移到一个或多个UserControls上。

你必须做一些工作才能将你的代码隐藏转移到新的类中,但是你必须做一些工作来处理一些字段为null,直到你完成加载。