加快控制重绘速度

时间:2014-08-26 21:09:14

标签: c# .net vb.net

我正在做一个大项目。我的表单是form1的mdi容器。 form1加载太慢,我可以看到正在绘制的控件。

每个表单都有更新方法,但我仍然遇到同样的问题。我无法使用任务来创建新表单。

这是我的代码

       form1.MdiParent = Me
       form1.Show()

我的表单有超过40个控件(文本框,标签,gridview ...),是的,它是重型UI。是否有任何解决方案可以使用并发技术,如:task,async await?

1 个答案:

答案 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