У меня есть трехслойное древовидное представление, и я использую код ниже. Я получаю это, чтобы сделать следующее,
1) Если родитель проверен, проверьте все дочерние узлы.
2) Если не проверен только один дочерний узел, снимите флажок с родительского узла.
3) Если проверены все дочерние узлы, проверьте родительский узел.
Код ниже работает только для 2 слоев. Был бы признателен, если вы можете помочь мне, как сделать это три. Существует много информации о древовидном представлении, но большинство из них кажется неактуальным = / Будет здорово, если вы покажете мне хорошее руководство по управлению древовидным отображением Спасибо!
Private Sub TreeView1_AfterCheck(ByVal sender As Object, ByVal e As TreeViewEventArgs) Handles TreeView1.AfterCheck
RemoveHandler TreeView1.AfterCheck, AddressOf TreeView1_AfterCheck
For Each node As TreeNode In e.Node.Nodes
node.Checked = e.Node.Checked
Next
If e.Node.Checked Then
If e.Node.Parent Is Nothing = False Then
Dim allChecked As Boolean = True
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
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