Vb.net Treeview.Click和.MouseClick事件在未单击任何节点时不触发

Vb.net Treeview.Click和.MouseClick事件在未单击任何节点时不触发,vb.net,winforms,treeview,treenode,deselect,Vb.net,Winforms,Treeview,Treenode,Deselect,如果用户单击treeview(右或左)并且光标不在节点上,我想将所选节点设置为nothing。我认为如果单击控件的任何部分,TreeView.MouseClick事件都会触发,但似乎只有在单击节点时才会触发。有没有办法做到这一点 编辑*我知道如何将所选节点设置为nothing,tvwMain.SelectedNode=nothing,但当单击控件时,我无法执行此操作,并且在该点上没有节点作为TreeView.MouseClick和TreeView。单击事件似乎不会触发,除非单击节点 Privat

如果用户单击treeview(右或左)并且光标不在节点上,我想将所选节点设置为nothing。我认为如果单击控件的任何部分,TreeView.MouseClick事件都会触发,但似乎只有在单击节点时才会触发。有没有办法做到这一点

编辑*我知道如何将所选节点设置为nothing,
tvwMain.SelectedNode=nothing
,但当单击控件时,我无法执行此操作,并且在该点上没有节点作为TreeView.MouseClick和TreeView。单击事件似乎不会触发,除非单击节点

Private Sub tvwMain_NodeMouseClick(sender As Object, e As MouseEventArgs) Handles tvwMain.Click
    Dim p = New Point(e.X, e.Y)
    Dim node As TreeNode = tvwMain.GetNodeAt(p)

    If node IsNot Nothing Then
        tvwMain.SelectedNode = node
        MsgBox("HERE")
    Else
        tvwMain.SelectedNode = Nothing
        MsgBox("TOO")
    End If
End Sub

Winforms、WPF或ASP.Net?可能重复的我可以将所选节点设置为nothing,
tvwMain.SelectedNode=nothing
,但我希望在用户单击控件时执行此操作,但单击下没有节点。此外,WinForms
单击
鼠标单击
应该可以工作,因为它们只是从
控件
继承的。甚至还有一个
NodeMouseClick
事件应该只针对节点。我有一个类似的方法(添加在上面),但有一个相同的问题:如果.Click、.MouseClick、NodeMouseClick事件不触发,除非光标位于节点上,然后使用其他事件之一,如MouseDown或Hover:
TreeNode test = tvwMain.GetNodeAt(tvwMain.PointToClient(Cursor.Position))
If IsNothing(test) Then tvwMain.SelectedNode = Nothing