代码之家  ›  专栏  ›  技术社区  ›  CruleD

使用ContextMenuStrip从TreeView中删除节点(禁用选择时)

  •  -1
  • CruleD  · 技术社区  · 8 年前

    我有一个有节点的树视图。

    已禁用对它的选择:

    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
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   jmcilhinney    8 年前

    我认为这会起到作用:

    Private lastClickedNode As TreeNode
    
    Private Sub TreeView1_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
        lastClickedNode = e.Node
    End Sub
    

    右键单击一个节点将在显示菜单之前将其分配给该字段,然后您可以从 Click 菜单项或其他的事件处理程序。

    推荐文章