Ms access 访问vba treeview(类mscomctlib.TreeCtrl.2)鼠标右键单击后如何选择节点
在类mscomctlib.TreeCtrl.2 treeview中,当发生鼠标右键单击事件时,是否有一种方法可以让节点被单击?Ms access 访问vba treeview(类mscomctlib.TreeCtrl.2)鼠标右键单击后如何选择节点,ms-access,vba,treeview,Ms Access,Vba,Treeview,在类mscomctlib.TreeCtrl.2 treeview中,当发生鼠标右键单击事件时,是否有一种方法可以让节点被单击? 可用的方法包括TV\u nodeClick(ByVal node作为对象)和TV\u MouseDown(ByVal按钮作为整数,ByVal Shift作为整数,ByVal x作为长,ByVal y作为长)这显然不提供节点,而只提供坐标。 那么,我如何从右键单击的节点中派生节点呢?我自己找到的!我检查了方法列表,发现了一个有趣的方法:hitTest。这将x,y转换为一个
可用的方法包括TV\u nodeClick(ByVal node作为对象)和TV\u MouseDown(ByVal按钮作为整数,ByVal Shift作为整数,ByVal x作为长,ByVal y作为长)这显然不提供节点,而只提供坐标。
那么,我如何从右键单击的节点中派生节点呢?我自己找到的!我检查了方法列表,发现了一个有趣的方法: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
+1过去,我在检查节点\单击事件上是否按住了ctrl键时绕过了这一点,但我喜欢这样:)