日期:2014-05-18  浏览次数:20969 次

Winform控件过多,窗体变的很卡还一直闪烁怎么办?
仿照DataGridView做的一个控件 

百度图片有时候和谐外链,所以再丢个地址http://hiphotos.baidu.com/xinlovexue/pic/item/72d975166d224f4ab75aeb8309f790529922d106.jpg

如图所示,这是一个用户控件,代表一个应用的详细信息,有一个复选框,一个图片框,若干个label和一个链接,这一个用户控件包含了10个小控件。

之后在程序中会读取一个目录的应用信息,实际使用时一般都会有一两百个应用信息,所以就是200*10,会创建2000个左右控件在窗体上,窗体就会变的非常卡,还一直闪烁...


不能用翻页实现,只能做成一个有滚动条的大列表。有没有办法可以优化这个问题?像DataGridView有上千行业不会显得多卡,而且我看有一些软件也是有我这种风格的用户控件的,也没感觉出来他们很卡,所以一定是有办法可以优化的。



------解决方案--------------------
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true);//禁止擦除背景.
SetStyle(ControlStyles.OptimizedDoubleBuffer, true);//双缓冲
this.UpdateStyles();
------解决方案--------------------
SuspendLayout()
和ResumeLayout()成对使用
------解决方案--------------------
双缓冲技术。
http://blog.csdn.net/soarandy/article/details/5038644