ListView的BeginUpdate()和EndUpdate()作用
许多Windows 窗体控件(例如,ListView 和 TreeView 控件)实现了 BeginUpdate 和EndUpdate 方法,至于为何要这样用简单说明一下。
当我们向一个Listview控件中添加一组Item的时候,第一种方式就是把Item全部放到一个集合里,一次性加到listview中,另一种方式就是用循环的方法一次加一个Item进去。我们要说的就是这第二种方式。
如果没有使用BeginUpdate()和EndUpdate(),那么每添加一个Item,ListView都要重绘,那么当要添加的Items很多的时候,屏幕就会闪烁的现象。如果在添加Item之前使用BeginUpdate(),那么,ListView其实就不动了,等到所有的Item都添加完了,使用EndUpdate()一次重绘ListView,这样就不会发生屏幕闪烁的现象了。这也就是我们在插入数据项操作的前后要声明 BeginUpdate() 和 EndUpdate()的原因所在了。
但是如果长时间连续不断的往Listview里加数据,BeginUpdate() 和 EndUpdate()只能缓解,却不是根本的解决办法,还是会有闪烁的情况发生。这时我们就要用到双缓冲了,可以尝试重写Listview.
class DoubleBufferListView : ListView
{
public DoubleBufferListView()
{
SetStyle(ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true );
UpdateStyles();
}
}
|
这样就应该可以解决闪烁的问题了。
ListView的BeginUpdate()和EndUpdate()作用相关推荐
- Delphi中BeginUpdate和EndUpdate作用
许多 Windows 窗体控件(例如,ListView 和 TreeView 控件)实现了 BeginUpdate 和EndUpdate 方法,它们在操纵基础数据或控件属性时取消了控件的重新绘制.通过 ...
- ListView的setSelection()不起作用的原因
2019独角兽企业重金招聘Python工程师标准>>> 经常会有这种case, 希望打开一个listview的时候能够自动设置显示的位置, setSelection(int pos) ...
- System.Windows.Forms.ListView
呈现一个 Windows 列表视图控件,并且能够以四种不同的视图中的任何一种来显示一个子项集合. 命名空间:System.Windows.Forms 汇编集:System.Windows.Forms( ...
- C#中ListView详解
ListView是一个Windows 列表视图控件,该控件显示可用五种不同视图(LargeIcon,Details,SmallIcon,List,Tile)之一显示项的集合. 对于这四种视图,官方文档 ...
- 毕设(五)ListView
ListView 控件可使用四种不同视图显示项目.通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本. 可使用 ListView 控件将称作 ListItem 对象的列表条目组织成 ...
- android listview适配器使用,android – 使用适配器在Listview中填充Listview
我有一个片段.这个片段在他的onCreateView方法上加载的视图有一个ListView(A)(填充在Adapter(A)中).但是,这个ListView(A)里面有另一个ListView(B).所 ...
- ListView控件的理解——自洽理论
写在前面的话: *标题中已经说明,是自洽理论.因此,有几率会有理解错误.但是,你不可以因此骂我. -我这个人经不起别人的批评,如果你批评我,我就,我就.... ## <第一行代码>读书笔记 ...
- Android 设置listview在scrollView中不滚动的方法
最近遇到一个问题,listview的父控件为scrollview,这样一来scrollview的滚动效果就没有啦! 其实只要通过一个设置就可以解决这个问题,让scrollview的滚动起作用,而lis ...
- Delphi小技巧杂记
//获取任务栏尺寸 procedure TForm1.Button1Click(Sender: TObject); var TaskList: HWnd; Bordered: TRect; begin ...
最新文章
- 微信小程序模板消息(服务通知消息)原始post工具封装(不使用jar包--坑比较多),解决47001(JSON格式)和中文乱码问题
- oracle 连接池sql跟踪,实现SQLServer、MySQL和oracle数据库连接池
- git 忽略文件不起作用
- 基于.net的微服务架构下的开发测试环境运维实践
- Qt——P10 自定义的信号和槽
- SpringSecurity系列(二) Spring Security入门
- 计算机声卡视频无法安装驱动程序,声卡驱动装不上怎么办 声卡驱动装不上解决方法【图文】...
- 8款国内外主流商业智能BI工具分析,助你轻松选型!
- 我想不通,MySQL 为什么使用 B+ 树来作索引?
- [ISSUE]angularjs resolve: $injector:unpr] Unknown provider:
- Sql - EXISTS 用于子查询
- 解决vscode进行chrome调试时报错:localhost拒绝了我们的连接请求
- html表单及其属性
- 转:北京地铁听证会结束,地铁公交调价方案2胜出,来看看涨价后多了多少钱??...
- 百度创始人李彦宏:互联网的下一章
- Android Back回退按钮
- 电商项目--------------------商品(SKU)规格、价格功能
- 遵化市10余个局委办一把手调研九次方大数据,详细部署数字遵化建设
- easyUI新增、删除
- buddypress主题_WordPress Gone Social-BuddyPress