4

複製:コンテキスト メニューでクリックされたノードを検索

ユーザーが右クリックすると、現在右クリックされているノードのタグオブジェクトに基づいて変更されるはずのコンテキストメニューがツリービューに表示されます。

現在、after_select イベントでコンテキスト メニューを更新していますが、ユーザーが別のノードを選択せず​​に右クリックすると機能しません。

どのノードが右クリックされたかを検出し、コンテキスト メニューを変更するにはどうすればよいですか? それとも私はそれを間違っていますか?

4

2 に答える 2

4

MouseDown イベントと HitTest メソッドを使用して、クリックされたノードを確認できます。

于 2008-12-13T23:02:52.520 に答える
3
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
于 2008-12-22T19:52:13.050 に答える