访问vba树视图(类MSComctlLib.TreeCtrl.2)鼠标右键单击后如何选择节点

Posted

技术标签:

【中文标题】访问vba树视图(类MSComctlLib.TreeCtrl.2)鼠标右键单击后如何选择节点【英文标题】:Access vba treeview (class MSComctlLib.TreeCtrl.2) how select node after right mouse click 【发布时间】:2012-02-21 08:50:19 【问题描述】:

当鼠标右键单击事件发生时,有没有办法在 MSComctlLib.TreeCtrl.2 树视图类中单击节点? 可用的方法包括 TV_nodeClick(ByVal node As Object) 明确提供点击的节点,以及 TV_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long ) 显然不提供节点,而只提供坐标。 那么如何导出右击的节点呢?

【问题讨论】:

【参考方案1】:

自己找到的!我检查了方法列表,发现了一个有趣的方法: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 我过去解决了这个问题,以检查是否在 node_click 事件上按住 ctrl 键,但我喜欢这种方式:)

以上是关于访问vba树视图(类MSComctlLib.TreeCtrl.2)鼠标右键单击后如何选择节点的主要内容,如果未能解决你的问题,请参考以下文章

将.net treeview 嵌入到 vba 中?

访问 vba 在数据表视图中选择新的原始数据

访问:通过 VBA 创建 SQL 视图的问题 - 子查询中不允许联合

如何保存 PySide 树视图模型结构

有没有办法将manydifferent文件夹放入树视图

VBA:在预处理时访问注册表