C#自定义控件重绘速度慢

时间:2010-09-17 20:46:56

标签: c# forms

我有一个C#Forms程序,总共有大约200个控件。有些是在我添加到表单的用户控件中。当我在家用机器上运行我的程序,双核AMD X64,2.0Ghz和ATI X1600卡时,程序运行正常。它很快,重绘不是问题。

当我将这个程序放到我的桌面,四核Intel 2.4Ghz,4GB RAM和NVidia Gefore 8800GT上时,它在重绘时会慢慢爬行。这可能是司机问题吗?

我为所有用户控件和表单启用了双缓冲。没有帮助。

我已阅读此帖,但我的情况不一样: Super slow C# custom control

2 个答案:

答案 0 :(得分:0)

事情是“.SuspendLayout();”并没有真正停止绘画。我不记得这句话,但我相信你可以在谷歌上得到它。 并尝试使用.AddRange可能有所帮助。

答案 1 :(得分:0)

重要的是要注意绘图控件就像在2D表面上绘画,根据需要重叠。如果控件不理解像矩形剪辑这样的东西,它可能会绘制一部分不可见的控件(特别是隐藏在另一个容器中的控件,如 TabPage ),浪费宝贵的CPU周期。此外,将 BackColor 透明的控件将尝试通过采用其父控件的 BackColor 来模仿透明度。由于所有这些都发生在GDI +上,而不是硬件加速,因此具有许多表现出这种行为的控件会加剧减速。

相关问题