Как отметить CheckBox-ы дочерних элементов дерева TreeView при нажатии на кнопку - Visual Basic .NET

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

Добрый день. Есть дерево TreeView c чекбоксами. Есть вспомогательный CheckedListBox Необходимо при включении/отключении первого чекбокса в листе - включить/отключить только узловые элементы дерева TreeView При вкл/откл второго чекбокса в листе - вкл/откл только дочерние элементы первого уровня (Без включения корневой ветки) При активизации третьего чекбокса - дочерние элементы второго уровня и т.д. Получилось только выделение узловых элементов.
    Private Sub CheckedListBox1_ItemCheck(sender As Object, e As ItemCheckEventArgs) Handles CheckedListBox1.ItemCheck
        Select Case e.NewValue
            Case CheckState.Checked
                If e.Index = 0 Then
                    For Each trview In TreeView1.Nodes
                        trview.Checked = True
                    Next
                End If
'---------------- В данном месте программы должны включаться дочерние элементы -----------------
 
                If e.Index = 1 Then
                    For Each trview In TreeView1.Nodes 'Данная строчка кода не правильная, не могу понять, как достучаться до дочерних элементов
                        node.Expand()
                        node.Checked = True
                    Next
                End If
'------------------------------------------------------------------------------------------------------------------              
            Case CheckState.Unchecked
           
                If e.Index = 0 Then
                    For Each trview In TreeView1.Nodes
                        trview.Checked = False
                    Next
                End If
'---------------- В данном месте программы должны выключаться дочерние элементы -----------------
                If e.Index = 1 Then
                    For Each trview In TreeView1.Nodes 'Данная строчка кода не правильная, не могу понять, как достучаться до дочерних элементов
                        trview.Checked = False
                    Next
                End If
'------------------------------------------------------------------------------------------------------------------  
        End Select
 
    End Sub
Дерево заполняется динамически. Спасибо

Код к задаче: «Как отметить CheckBox-ы дочерних элементов дерева TreeView при нажатии на кнопку - Visual Basic .NET»

textual
Private Sub CheckedListBox1_ItemCheck(sender As Object, e As ItemCheckEventArgs) Handles CheckedListBox1.ItemCheck
                If e.Index = 0 Then
                    For Each trview In TreeView1.Nodes
                        trview.Checked = e.NewValue
                    Next
                End If
 
                If e.Index = 1 Then
                    For Each trview In TreeView1.Nodes
                       For Each nd In trview.Nodes
                           nd.Expand()
                           nd.Checked = e.NewValue
                       Next
                    Next
                End If
    End Sub

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


СОХРАНИТЬ ССЫЛКУ