Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 访问vba treeview(类mscomctlib.TreeCtrl.2)鼠标右键单击后如何选择节点_Ms Access_Vba_Treeview - Fatal编程技术网

Ms access 访问vba treeview(类mscomctlib.TreeCtrl.2)鼠标右键单击后如何选择节点

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转换为一个

在类mscomctlib.TreeCtrl.2 treeview中,当发生鼠标右键单击事件时,是否有一种方法可以让节点被单击?
可用的方法包括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键时绕过了这一点,但我喜欢这样:)