Работа с флажками 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д