Проверка всех CheckBox в TreeView - VB

Узнай цену своей работы

Формулировка задачи:

Здравствуйте всем. Никак не могу придумать, как проверить все ли checkbox is checked в treeview . Нужно, чтобы если в Node.Parent.Children коллекции отмечены или неотмечены ВСЕ чекбосы- Boolean = True. И наоборот , если один или несколько checked/unchecked, то Boolean = False. Пробовал с Do ... While , If ... Then ... Next , то синтаксис не тот , то компиллер не пропускает. Если кто-то сможет пример или ссылку. Спасибо.
Пробовал так:
Не хочет.

Решение задачи: «Проверка всех CheckBox в TreeView»

textual
Листинг программы
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
Dim i As Integer, nodx As Node
     If Node.Children <> 0 Then 'If node has children
        Set nodx = Node.Child 'Catch first child
        For i = 1 To Node.Children 'Loop through each child
          nodx.Checked = Node.Checked 'Set as checked
          Set nodx = nodx.Next 'Catch next child
        Next 'Loop
      Else: AllChecked Node
      End If
End Sub
 
Private Sub AllChecked(Node As Node) 'Child node
Dim i As Integer, nodx As Node
Dim Switch As Boolean
Dim AllNodes As Boolean
'If Node.Parent Is Nothing Then MsgBox "root"
Set nodx = Node.Parent.Child
                Switch = nodx.Checked
                AllNodes = True
                    For i = 1 To Node.Parent.Children
                        If Switch <> nodx.Checked Then AllNodes = False
                        Switch = nodx.Checked
                        Set nodx = nodx.Next
                    Next i
                AllNodes = Not AllNodes
                Node.Parent.ForeColor = Abs(Int(AllNodes)) * vbRed
                Node.Parent.Bold = AllNodes
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.769 из 5