Ваш собственный ответ близок, но не пройдет по дереву. Попробуйте рекурсивный метод, подобный этому.
Private Sub unCheckNodesIncludingDescendants(Node as TreeNode)
Node.checked=false
For Each tn As TreeNode In Node.ChildNodes
tn.Checked = False
unCheckNodesIncludingDescendants(tn)
Next tn
End Sub
Ваш первоначальный вызов будет выглядеть так:
private sub UncheckWholeTree(TreeControl as TreeView)
For each rootNode as TreeNode in TreeControl.nodes
unCheckNodesIncludingDescendants(rootNode)
Next rootNode
end sub