快速清除TreeView的内容
来源:互联网 发布:西南交大网络设置 编辑:程序博客网 时间:2024/04/30 15:02
编号:QA004593
建立日期: 2002年3月23日 最后修改日期:2002年3月23日
所属类别:
Visual Basic - Windows 9x控件
文章:
李海译自IVBTips。
虽然TreeView提供了Clear方法来清除所有节点,但是采用逆序逐一删除节点,会更快。 你可以使用下面的代码:
Private Sub TrvwClear()
Dim x As Integer
With TreeView1.Nodes
For x = .Count To 1 Step -1
.Remove x
Next x
End With
End Sub
使用简单的API函数,你将可以进一步提高性能。不幸的是,当VB循环删除TreeView的节点时,它不断地重新绘制控件以显示剩余的节点。而这个行为会显著地降低进程的速度。我们所要采用的方法就是当删除节点时,禁止TreeView重新绘制它的节点。幸运的是,Windows API提供了一个函数来做到这一切。SendMessage()函数支持WM_SETREDRAW消息。使用这个消息,你的代码可以决定是否一个窗口应该被重新绘制。传递True (等价于API的1)允许窗口重新绘制,或者False (0)来阻止绘制。 加上API代码,我们清除代码是这样:
Private Const WM_SETREDRAW = &HB
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As _
Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub TrvwClear()
Dim x As Integer
With TreeView1
SendMessage .hwnd, WM_SETREDRAW, 0, 0
For x = .Nodes.Count To 1 Step -1
.Nodes.Remove x
Next x
SendMessage .hwnd, WM_SETREDRAW, 1, 0
End With
End Sub
组合了API的逆序删除是最快的清除TreeView控件。
文章来源:IVBTips。
- 快速清除TreeView的内容
- C#快速清除文本框内容的方法
- TreeView 内容的打印
- 文件内容的清除
- c#快速清除所有文本框中的内容
- c#快速清除所有文本框中内容
- c#快速清除所有文本框中内容
- linux下快速清除文件内容
- 知道TreeView节点的内容
- 复制TreeView里的内容?
- 快速调入TreeView控件以及ListView控件的子项内容
- 机房收费系统 —— 如何快速清除任何文本框的内容
- ios 清除UIScrollView的内容
- 清除数据的所有内容
- JS清除选择的内容
- 清除文本框、树的内容
- js清除选中的内容
- 获取其他程序中TreeView的内容
- C#(文字类型转换)【下拉菜单->C#字体CodeBehind】附:【用C#实现生成PDF文档】
- 教你做MSN样式的控件
- EDK Driver Library : xilnet
- java常见问题
- TREE VIEW
- 快速清除TreeView的内容
- Hibernate2.1.6 源码分析
- treeview使用问题集锦
- C的几道练习及心得
- java中 中文问题详解
- Apache和Tomcat整合之道
- 啃C【1】
- 啃C【2】
- 开始做第一个项目了。