TreeView1.Nodes.Clear на слабых машинах - VB
Формулировка задачи:
Проблема: довольно заполненый TreeView по команде TreeView1.Nodes.Clear сначала, как я понял, сворачивает все открытые ветки, а потом их удаляет, что довольно долго сопровождается морганием экрана. На стареньких машинах видеть это довольно тяжело. Помогите от этого избавиться. Спасибо.
Решение задачи: «TreeView1.Nodes.Clear на слабых машинах»
textual
Листинг программы
Public Const TV_FIRST As Long = &H1100 Public Const TVM_GETNEXTITEM As Long = (TV_FIRST + 10) Public Const TVM_DELETEITEM As Long = (TV_FIRST + 1) Public Const TVGN_ROOT As Long = &H0 Public Const WM_SETREDRAW As Long = &HB '// Public Declare Function SendMessageLong Lib 'user32' Alias 'SendMessageA' (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long '// '// Cверхбыстрая очистка '// Private Sub ClearTreeView(ByVal tvHwnd As Long) '// Dim lNodeHandle As Long '// SendMessageLong tvHwnd, WM_SETREDRAW, False, 0 Do lNodeHandle = SendMessageLong (tvHwnd, TVM_GETNEXTITEM, TVGN_ROOT, 0) If lNodeHandle > 0 Then SendMessageLong tvHwnd, TVM_DELETEITEM, 0, lNodeHandle Else Exit Do End If Loop SendMessageLong tvHwnd, WM_SETREDRAW, True, 0 End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д