'Контрол TreeView придает Вашей аппликухе законченный вид Windows 95. 'Однако, в учебниках по VB не сказано, как перехватывать правый мышиный 'клик на узле (node) дерева. Событие Treeview_MouseDown происходит до 'события NodeClick. Чтобы показать контекстное меню над узлом, используйте 'этот код и определите ключ (Key) для для каждого узла в виде буквы и идущим 'за ней числом.
'+ Root (R01) ' the letter gives '|--- Child 1 (C01) ' the indication To '|--+ Child 2 (C02) ' the context menu '| |--- Child 2.1 (H01) '| |--- Child 2.2 (H02)
Dim bRightMouseDown As Boolean
Private Sub Form_Load() bRightMouseDown = False End Sub
Private Sub treeview1_MouseDown_ (Button As Integer, Shift As _ Integer, X As Single, Y As Single) If Button And vbRightButton Then bRightMouseDown = True Else bRightMouseDown = False End If End Sub
Private Sub treeview1_MouseUp_ (Button As Integer, Shift As _ Integer, X As Single, Y As Single) bRightMouseDown = False End Sub
Private Sub treeview1_NodeClick_ (ByVal Node As Node) Select Case Left(Node.Key, 1) Case "R" If Not bRightMouseDown Then ' Do the normal node click, ' so you must here the code ' For the node code click Else ' выбор узла treeview1.Nodes(Node.Key).Selected = True ' показать контекстное меню PopupMenu mnuContext1 End If
Case "C" If Not bRightMouseDown Then ' Do the normal node click, ' so you must here the code ' For the node code click Else ' выбор узла treeview1.Nodes(Node.Key).Selected = True ' показать контекстное меню PopupMenu mnuContext2 End If
' то же с остальными узлами ' .... End Select End Sub
Если Вас заинтересовала или понравилась информация программирование на Visual Basic - "Перехват правых кликов на узлах treeview", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!