我有一个c#应用程序,并且有很多带控件的表单 每当我运行我的应用程序时,具有许多控件的表单打开速度很慢 那么有什么方法可以让它更快地开放?
答案 0 :(得分:4)
从评论中可以看出,没有一种普遍的“让事情更快”的技术。你需要找到瓶颈并修复它。以下是一些提示:
答案 1 :(得分:2)
如果您在表单构造函数中使用控件执行代码,或者在加载表单时执行某些操作,则可以在该代码之前编写 this.SuspendLayout();
并 this.ResumeLayout();
那段代码之后。这可以防止几次耗时的布局操作。
答案 2 :(得分:1)
我建议您为用户提供更好的用户体验,而不是让它加载更快。
首先,首先加载Splash View(带加载进度)。在后台运行的后台线程中,使用大量控件加载View。当您的视图完全加载后,隐藏启动视图并显示您的视图。
答案 3 :(得分:0)
考虑到有问题的信息,我wolud说:
可能组中的Devide控件(用户几乎不可能同时需要所有控件 )并将它们放在单独的Tabs
选项卡控件上。
自动(空间)仅加载fisrt Tab
上的控件,而其他人则以动态方式加载它们。
在这种情况下,如果用户不需要某些功能,则永远不会切换到包含它的选项卡,因此将不会加载用户不需要的该功能的控件,这将提供整体加载时间更快。
如果有一个数据应该在控件上推送,请尽可能以异步方式加载,
希望这有帮助。
答案 4 :(得分:0)
我遇到过类似的问题,但控制权比你的多得多。
考虑到你有一组相对较小的控件,我认为罪魁祸首是数据访问层减慢了一切。 (例如,加载那些网格和组合)
可以告诉您很多事情的简单操作是将您的数据访问权移动到form_shown事件。
答案 5 :(得分:-1)
在 Visual Studios(在解决方案资源管理器下)中,您可以右键单击您的解决方案/解决方案名称并选择列表底部的属性。如果您选择“配置属性”,然后在配置下,您可以选择“发布”而不是“调试”。这将大大减少加载时间。 此外,避免在代码中使用“Thread.Sleep”是明智之举。这种方法经常使用,主要用于糟糕的代码编写者。大约 10% 在特定情况下是可行的,但我会不惜一切代价避免它。
答案 6 :(得分:-2)
最好的办法是将您的解决方案分成多层
YourAppUI contains forms
YourApp.Controls contains controls
YourApp.BLL contains business logic
YourApp.DAL contains data access layer