4
式兩份:Find node clicked under context menu動態上下文菜單
我已經有了一個TreeView上下文菜單,當用戶右鍵單擊它應該基於當前右單擊的節點的標籤對象來改變。
目前我更新的上下文菜單中after_select事件,但是當用戶用鼠標右擊到另一個節點不選擇它,這並不工作。
如何檢測右鍵單擊哪個節點並更改上下文菜單?還是我做錯了?
式兩份:Find node clicked under context menu動態上下文菜單
我已經有了一個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
太糟糕了,你沒有找到http://stackoverflow.com/questions/2527/c-treeview-context-menus – Guge 2008-12-13 23:58:53
很好發現。要麼在SO搜索吸引人的搜索查詢中很糟糕。無論如何更新。 – 2008-12-14 00:22:07