BeginUpdate()和EndUpdate()

本文介绍了在使用ListView控件时如何高效地批量添加项以避免屏幕闪烁现象。通过使用BeginUpdate()和EndUpdate()方法,可以显著提升用户体验,并提供了一种最佳实践方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其实不管是ListView还是其他的控件,我相信对于BeginUpdate()和EndUpdate()的理解都是相同的。

    首先,我们先建立一个概念,在对ListView添加一组Items的时候我们应该用哪几种方法。第一种,一次以集合的方式,对一大堆Items一次加到ListView对象中去。第二种,每次加一个Item,用循环的方法全部把它们加完。

    BeginUpdate()和EndUpdate()就是针对第二种方法的。如果没有使用BeginUpdate()和EndUpdate(),那么每添加一个Item,ListView都要重绘,那么当要添加的Items很多的时候,屏幕就会闪烁的现象。如果在添加Item之前使用BeginUpdate(),那么,ListView其实就不动了,等到所有的Item都添加完了,使用EndUpdate()一次重绘ListView,这样就不会发生屏幕闪烁的现象了。

 

将多个项添加到 ListView 的首选方法是使用 ListView..::.ListViewItemCollection(通过 ListViewItems 属性访问)的 AddRange 方法。这使您得以在一个操作中就可将一组项添加到列表中。然而,如果希望使用 ListView..::.ListViewItemCollection 类的 Add 方法以每次一个的方式添加项,则可以使用 BeginUpdate 方法防止控件在每次添加项时重新绘制 ListView。在完成将项添加到控件的任务后,请调用 EndUpdate 方法以使 ListView 能够重新绘制。这种添加项的方法可以防止将大量项添加到控件时发生闪烁的 ListView 绘制。

如果多次调用 BeginUpdate,则也必须调用相同次数的 EndUpdate。只有在最后一次调用 EndUpdate 时,才会重新绘制 ListView。除了这次调用,对 BeginUpdate 的其他多次调用都不起任何作用。

此句关键,要不listview无法显示出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值