You cannot change the value of a nodes checkbox in the event
treeview_NodeCheck as explained in this
tip. Besides that, the event doesn't fire at all when clicking a nodes checkbox and dragging the mouse out of the treeview before releasing your mousebutton.
The following code is a decent work-around:
Private Sub treeview_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim objNode As MSComctlLib.Node
Set objNode = treeview.HitTest(x, y)
If Not objNode Is Nothing Then Set treeview.SelectedItem = objNode
End Sub
Private Sub treeview_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
'Do whatever validation you want on treeview.SelectedItem
'You might want to check here for a not set SelectedItem
End Sub