winform 控件过多,结果滚动条拖动速度变慢,请问怎么解决?

小弟用的是C#,最近做的一个Winform项目其中有下面这个功能:主窗体弹出时要绑定一个商品列表,每个条商品信息要显示的有:主图、标题、访问量、购买人数,转化率5项,其中... 小弟用的是C#,最近做的一个Winform项目其中有下面这个功能:
主窗体弹出时要绑定一个商品列表,每个条商品信息要显示的有:主图、标题、访问量、购买人数,转化率5项,其中访问量、购买人数、转化率还要和前一天做对比,看是上升了还是下降了。
现在这两分功能实现了,但是速度却不理想。商品列表的加载速度优化过后还可以,主要是滚动条拖动的时候显得很卡,鼠标滚轴滚动之后差不多1秒后商品列表才往下移动,不像平时在拖动网页滚动条那样速度快,请问该如何解决?

每个商品项要显示的信息如下,我是用一个用户控件做的商品项,其中包含了PictureBox 和若干Label
发现是这段代码的原因
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED
return cp;
}
}
这个代码是为了让界面加载的时候不闪烁,去掉之后拖动滚动条就不卡了,但是界面就闪烁了,现在真是顾此失彼,请问大神有没有办法解决?
展开
 我来答
然后去远足
2014-08-28 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2518万
展开全部
主要毛病就是你这个控件太多,本身就有若干个 Panel,每个Panel 里还套了若干个 PictureBox 和 Label,这样一来你每次滚动相当于重新绘制无数个控件了。

要么不要用控件,改为双缓冲绘制,把图和文字分别用 DrawImage 和 DrawString 等方法画出来。但即使这样,一旦数据量多了一样很卡。

要么采用分页模式,每页里面只显示15-20条记录。
追问
双缓存已经采用了,可是没效果。我现在添加3个宝贝拖动的时候就感觉很卡了。
我昨晚又研究了下,发现是下面这段代码的原因:
子丶夜
2014-08-28 · TA获得超过397个赞
知道小有建树答主
回答量:326
采纳率:25%
帮助的人:226万
展开全部
把你一些做成用户空间,然后用双缓存
追问
我就是用的用户控件,双缓存也用了,但是没效果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式