2012-02-21 226 views
2

当鼠标右键单击事件发生时,是否有一种方法可以在类MSComctlLib.TreeCtrl.2树视图中获取点击的节点?可
方法包括TV_nodeClick(BYVAL节点作为对象),明确供应节点点击,并TV_MouseDown(BYVAL按钮整数,BYVAL转变为整数,BYVAL X长,BYVALÿ长)这显然不不提供节点,而只提供坐标。
那么我怎样才能得到右键点击的节点呢?访问vba树视图(MSComctlLib.TreeCtrl.2类)如何选择节点后点击鼠标右键

回答

3

自己找到了!我检查了方法列表并找到了一个有趣的:hitTest。这将x,y转换为节点;当然,必须添加一个检查来确定节点已经确定。
示例代码:

Private Sub TV_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long) 
    If Button = acRightButton And Not (Me.TV.HitTest(x, y) Is Nothing) Then 
     MsgBox (Me.TV.HitTest(x, y).Key) 
    End If 
End Sub 
+0

+1我身边这让过往的检查Ctrl键是否被按下的node_click事件,但我喜欢这样说:) – 2012-02-21 09:28:03