使用 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 事件处理程序访问该节点。