Работа с флажками TreeView - Visual Basic .NET

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

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

Добрый день всем. Подскажите пожалуйста как написать код, чтобы при установке флажка в Checkbox напротив узла в Treeview все Checkbox его дочерних элементов так же были отмечены и наоборот при снятии флажка все Checkbox дочерних элементов снимались и при снятии флажка в дочернем Checkbox галочка в Checkbox родительского узла снималась.
Уже разобрался

Решение задачи: «Работа с флажками TreeView»

textual
Листинг программы
    Private Sub TreeView1_AfterCheck(ByVal sender As Object, ByVal e As TreeViewEventArgs) Handles TreeView1.AfterCheck
        RemoveHandler TreeView1.AfterCheck, AddressOf TreeView1_AfterCheck
 
        Dim s As Integer
        Dim u As Integer
 
        For u = 0 To LabDatabaseDataSet.Method.Count - 1
            If e.Node.Text = LabDatabaseDataSet.Method.Rows(u).Item(2) Then
                s = LabDatabaseDataSet.Method.Rows(u).Item(0)
            End If
        Next
 
        For Each node As TreeNode In e.Node.Nodes
            node.Checked = e.Node.Checked
            '[
            If node.Checked = True Then
                DGV1.Rows.Add(s, " ", node.Text, "В работе")
            End If
            ']
        Next
 
        If e.Node.Checked Then
 
            If e.Node.Parent Is Nothing = False Then
                Dim allChecked As Boolean = True
                '[
                DGV1.Rows.Add(s, " ", e.Node.Text, "В работе")
                ']
                For Each node As TreeNode In e.Node.Parent.Nodes
                    If Not node.Checked Then
                        allChecked = False
                    End If
                Next
 
                If allChecked Then
                    e.Node.Parent.Checked = True
                End If
 
            End If
        Else
            '[
            Dim Row As DataGridViewRow
            Dim str_find As String = e.Node.Text
            For Each Row In DGV1.Rows
                If (Row.Cells(2).Value.ToString().Contains(str_find)) Then
                    DGV1.CurrentCell = Row.Cells(2)
                    DGV1.Rows(Row.Index).Selected = True
                    DGV1.Rows.RemoveAt(Row.Index)
                End If
            Next
            ']
            If e.Node.Parent Is Nothing = False Then
                e.Node.Parent.Checked = False
            End If
        End If
 
        AddHandler TreeView1.AfterCheck, AddressOf TreeView1_AfterCheck
 
    End Sub

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


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

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

6   голосов , оценка 4.5 из 5
Похожие ответы