使用 ContextMenuStrip 从 TreeView 中删除节点(禁用选择时)
Remove node from TreeView with ContextMenuStrip (when selection is disabled)
我有一个带节点的 TreeView。
选择被禁用:
Private Sub TreeList_BeforeSelect(sender As Object, e As TreeViewCancelEventArgs) Handles TreeList.BeforeSelect
e.Cancel = True
End Sub
我找不到找到哪个节点(因为会有多个)打开 ContextMenuStrip(所以我可以用它删除它)的方法。
根据评论,现在可以使用了:
Dim WhichItemIsIt As TreeNode
Private Sub TreeList_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeList.NodeMouseClick
WhichItemIsIt = e.Node
End Sub
Private Sub RemoveToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RemoveToolStripMenuItem.Click
TreeList.Nodes.Remove(WhichItemIsIt)
End Sub
我认为这可以解决问题:
Private lastClickedNode As TreeNode
Private Sub TreeView1_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
lastClickedNode = e.Node
End Sub
右键单击一个节点将在显示菜单之前将其分配给该字段,然后您可以从菜单项或其他任何内容的 Click
事件处理程序访问该节点。
我有一个带节点的 TreeView。
选择被禁用:
Private Sub TreeList_BeforeSelect(sender As Object, e As TreeViewCancelEventArgs) Handles TreeList.BeforeSelect
e.Cancel = True
End Sub
我找不到找到哪个节点(因为会有多个)打开 ContextMenuStrip(所以我可以用它删除它)的方法。
根据评论,现在可以使用了:
Dim WhichItemIsIt As TreeNode
Private Sub TreeList_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeList.NodeMouseClick
WhichItemIsIt = e.Node
End Sub
Private Sub RemoveToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RemoveToolStripMenuItem.Click
TreeList.Nodes.Remove(WhichItemIsIt)
End Sub
我认为这可以解决问题:
Private lastClickedNode As TreeNode
Private Sub TreeView1_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
lastClickedNode = e.Node
End Sub
右键单击一个节点将在显示菜单之前将其分配给该字段,然后您可以从菜单项或其他任何内容的 Click
事件处理程序访问该节点。