Treeview .Click 和 .MouseClick 事件在未单击任何节点时不触发
Treeview .Click and .MouseClick event not firing when no node is clicked
如果用户单击树视图(右侧或左侧)并且光标不在节点上,我想将所选节点设置为空。我认为如果单击控件的任何部分, TreeView.MouseClick 事件就会触发,但它似乎只在单击节点时触发。有什么办法吗?
编辑* 我确实知道如何将所选节点设置为空,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
TreeNode test = tvwMain.GetNodeAt(tvwMain.PointToClient(Cursor.Position))
If IsNothing(test) Then tvwMain.SelectedNode = Nothing
如果用户单击树视图(右侧或左侧)并且光标不在节点上,我想将所选节点设置为空。我认为如果单击控件的任何部分, TreeView.MouseClick 事件就会触发,但它似乎只在单击节点时触发。有什么办法吗?
编辑* 我确实知道如何将所选节点设置为空,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
TreeNode test = tvwMain.GetNodeAt(tvwMain.PointToClient(Cursor.Position))
If IsNothing(test) Then tvwMain.SelectedNode = Nothing