我正在做一个大项目。我的表单是form1的mdi容器。 form1加载太慢,我可以看到正在绘制的控件。
每个表单都有更新方法,但我仍然遇到同样的问题。我无法使用任务来创建新表单。
这是我的代码
form1.MdiParent = Me
form1.Show()
我的表单有超过40个控件(文本框,标签,gridview ...),是的,它是重型UI。是否有任何解决方案可以使用并发技术,如:task,async await?
答案 0 :(得分:3)
在运行一些测试并查看一些旧代码后,我能够找到有助于解决此特定问题的内容,您可以尝试在表单中添加下一个样式
public partial class Form1 : Form
{
protected override CreateParams CreateParams
{
get
{
CreateParams CP = base.CreateParams;
CP.ExStyle = CP.ExStyle | 0x02000000; // WS_EX_COMPOSITED
return CP;
}
}
}
您可以在此处查看WS_EX_COMPOSITED文档: http://msdn.microsoft.com/en-us/library/windows/desktop/ff700543(v=vs.85).aspx
我在一个包含752个子控件(标签,文本框,数据网格,组合框和列表框)的表单上尝试了这个,我无法看到子控件是如何绘制的,它们只是溅入视图中。
VB版:
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or &H02000000
Return cp
End Get
End Property