复本:查找

下上下文菜单点击节点

我已经有了一个TreeView,在用户右键单击它应该基于当前右单击的节点的标签对象来改变上下文菜单。

目前我更新在after_select事件上下文菜单,但是这并不时用鼠标右击到另一个节点而不选择它的工作。

如何可以检测哪一个节点右点击并更改上下文菜单?还是我做错了?

有帮助吗?

解决方案

可以使用MouseDown事件和的HitTest方法找出单击了哪个节点。

其他提示

Private Sub tvTables_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles tvTables.MouseDown
    If e.Button = Windows.Forms.MouseButtons.Right Then
        Dim M As New ContextMenuStrip
        Dim HTI As TreeViewHitTestInfo = tvTables.HitTest(e.X, e.Y)
        If HTI.Node.Level = 0 Then
            M = T1Menu
        ElseIf HTI.Node.Level = 1 Then
            M = T2Menu
        ElseIf HTI.Node.Level = 2 Then
            M = T3Menu
        End If
        tvTables.ContextMenuStrip = M
        tvTables.ContextMenuStrip.Show()
    End If
End Sub
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top