excel - Excel VBA 检测用户是否在树视图上选择父节点或子节点
问题描述
我有一个用户表单,其中包含一个树视图和 2 个框架,每个框架都有几个文本框、标签等。
如果用户选择某些父母或他们的任何孩子,我想隐藏 1 个用户窗体框架。
使用下面的代码,如果用户选择了一个孩子,我可以隐藏框架,但如果用户选择一个父母,我会收到运行时错误 91“对象变量或未设置块变量”</p>
将 Node.Parent 更改为 Node.Key 会在选择父项时隐藏框架,但在选择子项时不会。如果选择任何一个,如何隐藏框架?欢迎任何指导。
If Node.Parent = "North" Or Node.Parent = "South" Or Node.Parent = "East” _
or Node.Parent = "West" Then
UserForm1.Frame1.Visible = False
解决方案
If Userform1.TreeView1.Nodes(<name of node>).Parent Is Nothing Then
<this is a parent node>
Else
<this is a child node>
End If
您可以在“mousedown”事件期间使用 hittest 获取所选节点的名称。按钮、shift、x 和 y 由事件自动填充
Private Sub TreeView1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As stdole.OLE_XPOS_PIXELS, ByVal y As stdole.OLE_YPOS_PIXELS)
'hittest is looking at twips, x,y=pixels. 15 twips to a pixel (*15) to make it
<name of node> = TreeView1.HitTest(x * 15, y * 15)
End Sub
推荐阅读
- symfony - 更新到 symfony 5.2 后,无法再访问事件订阅者中的登录用户
- google-cloud-dataflow - 为什么 Dataflow 步骤正在等待前面的步骤
- c++ - 柯南错误:在“需求”的不同评估中获得不兼容的需求
- typescript - 在定义类型时检查列表类型属性中的每个元素
- python - How to apply condition in PySpark to keep null only if one else remove nulls
- node.js - 将标头提供给 API 时的 Access-Control-Allow-Origin
- idris - 以数据类型编码二叉搜索树
- python - 为什么 Python 只能读取“下载”文件夹中的 CSV 而不能读取我 PC 上的其他文件夹中的 CSV?
- recursion - 递归是解决树问题的唯一方法吗
- ios - 故事板中的条形按钮未显示