渲染winforms控件更加流畅

时间:2010-02-12 22:37:52

标签: .net winforms .net-3.5

我的winforms应用程序渲染非常不稳定。是否有一种技术可用于在屏幕上绘制表格,或者在布局处理之前隐藏它?任何有助于加快表格视觉负荷的东西。

感谢您的帮助。

编辑:

表单每个都有几个网格,大约20到30个附加控件(文本框/复选框)。所有控件都是第三方,我自己也不做任何自定义绘画。

2 个答案:

答案 0 :(得分:9)

你的表单上有太多的控件,你很危险。你会看到每个控件轮流绘画本身。双缓冲无法解决这个问题,所有控制窗口的整个表单都必须是双缓冲的。这是可能的,因为XP,它支持WS_EX_COMPOSITED窗口样式标志。它不会加速绘画,但在完成所有渲染之前屏幕不会更新。

将此代码粘贴到表单中以启用它:

protected override CreateParams CreateParams {
  get {
    CreateParams cp = base.CreateParams;
    cp.ExStyle |= 0x02000000;  // Turn on WS_EX_COMPOSITED
    return cp;
  }
} 

答案 1 :(得分:1)

您可以拨打SuspendLayout,然后再拨打ResumeLayout