我更新数据时没有出现闪屏,而是数据再次重新加入,而前面的却没有删除掉
如果不用List.DeleteAllItem() 这个方法。还有没有其它的???
如果不用List.DeleteAllItem() 这个方法。还有没有其它的???
解决方案 »
- 用devcon删除注册表。
- IPicture中Render的用法
- 自绘CTabCtrl,但ON_WM_MOUSEMOVE不响应
- [请教]如何复制或者移动文件及文件夹
- UP有分,installshield问题,用ISPRO6.2做英文和中文的一个installshield安装程序,我的问题是怎么样使该installshield可以同时将两个版
- 高分求救:如何用vc求出一个图像文件的大小!!!!!(在线等待!!)
- 怎么include sdk的头文件?
- 救救我,谁有对发到本地计算机的IP包进行分析的源代码!
- 如何在formview中添加子对话框
- 如何修改CTreeCtrl的文本背景色
- 如何增加新的编译版本,去掉debug和release版本?
- IOCP 编程需要添加哪些头文件?
如果更新后的行数比原有行数多,那么很好,原有的行用SetItemText,新的行用InsertItem
如果更新后的行数比原有行数少,那么也不错,原有的行用SetItemText,多出来的行用DeleteItem
这样应该比先DeleteAllItem,然后InsertItem的效果要强。
当然,楼上也说了一些招,比如判断没有变化的行,就不必更新了。这需要根据具体情况,如果确实每次刷新变化量很小,那么这么做就很好。如果每次更新变化量很大,或者都发生变化。那么,我得方法是:
先不删除列表中现有的行。假设列表中有10行,你现在新更新的数量是12行。那么,对于新数据中的前10条,直接用SetItemText函数替换列表中已有的10行数据,不就改过来了吗?只需要发生一次变化。对于剩余的两条,则用InsertItem在后面插入,那么变化也只发生一次。