winforms 未单击任何节点时不激发Treeview.click和.MouseClick事件

2hh7jdfx  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(122)

我想在用户单击树视图(右或左)并且光标不在节点上时,将选定节点设置为空。我以为单击控件的任何部分都会激发TreeView.MouseClick事件,但似乎只有在单击节点时才会激发。有什么方法可以做到这一点吗?
编辑 * 我确实知道如何将选定节点设置为nothing,tvwMain.SelectedNode = Nothing,但当单击控件时,如果此时没有TreeView.MouseClick与TreeView.Click事件,则无法执行此操作,除非单击某个节点.

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
ekqde3dh

ekqde3dh1#

TreeNode test = tvwMain.GetNodeAt(tvwMain.PointToClient(Cursor.Position))
If IsNothing(test) Then tvwMain.SelectedNode = Nothing

相关问题