2013-03-04 61 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:考虑将组中的按钮分开,因为我需要在一个位置使用所有按钮(也许在选项卡中拆分?并在按下该选项卡时加载它们)好吧,考虑一下。