首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当WinForms UI位于用户控件中时,它的加载速度要慢得多

当WinForms UI位于用户控件中时,它的加载速度要慢得多
EN

Stack Overflow用户
提问于 2011-01-20 06:31:33
回答 1查看 5K关注 0票数 2

我的应用程序的主界面相当大。具有outlook类型的计划控件。和大约40个.NET基础控件。

如果所有这些都放到表单本身中,它会加载得很快,一切看起来都很棒!

我最近将所有这些控件移动到一个用户控件中,然后通过反射,我从磁盘加载程序集,然后将其强制转换为(控件),并在我的form_Load中调用以下代码:

代码语言:javascript
复制
this.Controls.Add(myUserCtrl);

由于将所有内容都移动到用户控件中,我将加载时间从2-3秒缩短到了15 - 20秒。即使我仍然加载相同数量的控件。

有人能解释一下为什么将控件移到UserControl中会带来如此糟糕的加载性能吗?

我已经尝试了所有方法,包括调用暂停/恢复布局函数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-20 06:43:40

将您的代码从Form_Load移动到构造函数。

在Form_Load中,控件的句柄已经创建,因此所有更新都需要进行本机调用来更新实际的窗口句柄。

这可能会很慢,这取决于您正在做什么。(调用BeginUpdate / EndUpdate会有所帮助)

通过将代码移到构造函数中,可以在创建句柄之前初始化所有内容。

这取决于您的代码做了什么,这不一定会有任何好处。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4741569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档