如何讓 ListView 不刷新

bobogg 2011-04-02 03:55:24

Private Sub Label1_Change(Index As Integer)

With ListView1
.ListItems(Index).SubItems(1) = Label1(Index).Caption
End With

End Sub

Private Sub Command1_Click()
' 手动按下 Command1_Click() 时, 才让 ListView1 画面刷新到最新的值
End Sub


' Label1 是一个 500 个控件阵列
' 请问
' 如何让 .ListItems(Index).SubItems(1) 填入数值后, ListView1 画面不刷新为最新的值
' 手动按下 Command1_Click() 时, 才让 ListView1 画面刷新到最新的值
...全文
194 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobogg 2011-10-29
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 vbadvisor 的回复:]
Private Sub Label1_Change(Index As Integer)
SendMessage ListView1.hWnd, WM_SETREDRAW, 0&, ByVal 0&
With ListView1
.ListItems(Index).SubItems(1) = Label1(Index).Caption
End With

End Su……
[/Quote]

呵呵

被你唬了

被实验确定

就直接相信给了你最佳解答

结果你的 code 并不能达到目的
VBAdvisor 2011-07-04
  • 打赏
  • 举报
回复


Private Sub Label1_Change(Index As Integer)
SendMessage ListView1.hWnd, WM_SETREDRAW, 0&, ByVal 0&
With ListView1
.ListItems(Index).SubItems(1) = Label1(Index).Caption
End With

End Sub

Private Sub Command1_Click()
' 手动按下 Command1_Click() 时, 才让 ListView1 画面刷新到最新的值
SendMessage ListView1.hWnd, WM_SETREDRAW, 1&, ByVal 0&
End Sub
赵4老师 2011-04-14
  • 打赏
  • 举报
回复
可以
先.Visible=False
修改数据
再.Visible=True
试试
LinkSe7en 2011-04-13
  • 打赏
  • 举报
回复
这也是刚玩VB的时候经常犯的小错误 可以说是一种不良的习惯 这样虽然简便 但是却是一种低效的方法








论坛签名======================================================================

当您的问题得到解答后请及时结贴.

http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
http://topic.csdn.net/u/20100428/09/BC9E0908-F250-42A6-8765-B50A82FE186A.html
http://topic.csdn.net/u/20100626/09/f35a4763-4b59-49c3-8061-d48fdbc29561.html

如何给分和结贴?
http://community.csdn.net/Help/HelpCenter.htm#结帖

如何给自己的回帖中也加上签名?
http://blog.csdn.net/q107770540/archive/2011/03/15/6250007.aspx
LinkSe7en 2011-04-13
  • 打赏
  • 举报
回复
不要把数据直接保存到LV上面 弄个数组保存 需要提交的时候再将数组输出到LV上面
bobogg 2011-04-13
  • 打赏
  • 举报
回复
确定无解吗?
只能不用
贝隆 2011-04-02
  • 打赏
  • 举报
回复
最好的办法就是不用
bobogg 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 king06 的回复:]

用两个listview得了,重叠在一起,更新值到后面隐藏的那个.
需要显示的时候当前的隐藏,后面的显示 (觉得这方法比较烂)
[/Quote]

不行, 之所以要一段时间才更新
就是要降低 listview 刷新次数

Private Sub Label1_Change(Index As Integer)
共有 500 个
Change 速度都是很频繁的
listview 频繁刷新会拖累效能的

原本我是打算用 sunjs12345 说的方法
但想了想
搞不好有 API 可以直接办到
那是不是用 API 就好了
又可省下额外的 "把数值存到变量里" 步骤
Label1 控件数量要是很多, 到时变量处理又是得额外花一笔时间


king06 2011-04-02
  • 打赏
  • 举报
回复
用两个listview得了,重叠在一起,更新值到后面隐藏的那个.
需要显示的时候当前的隐藏,后面的显示 (觉得这方法比较烂)
bobogg 2011-04-02
  • 打赏
  • 举报
回复
不知是不是能发送什么 Message 让 ListView1 不要刷新
bobogg 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dbcontrols 的回复:]

把数值存到变量里,需要的时候再填
[/Quote]

为了让尽量减少运算
所以原先就不考虑这样做
不然就不需要请益此题了
杀神者 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dbcontrols 的回复:]

把数值存到变量里,需要的时候再填
[/Quote]
拐个弯,再执行
dbcontrols 2011-04-02
  • 打赏
  • 举报
回复
把数值存到变量里,需要的时候再填

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧