【问题标题】:Dynamic Context Menu on Treeview Nodes树视图节点上的动态上下文菜单
【发布时间】:2008-12-13 22:54:56
【问题描述】:

重复的:Find node clicked under context menu

我在 Treeview 上有一个上下文菜单,当用户右键单击它应该根据当前右键单击的节点的标记对象进行更改。

目前我正在更新 after_select 事件中的上下文菜单,但是当用户右键单击另一个节点而不选择它时,这不起作用。

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

【问题讨论】:

标签: .net winforms treeview contextmenu right-click


【解决方案1】:

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

【讨论】:

    【解决方案2】:
    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
    

    【讨论】:

      猜你喜欢
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      • 2012-09-08
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多