jbuzbee 发表于 2006-6-23 12:28:15

树视图控制

好的,我已经开始对VBA控件进行编目,以取代ObjectDCL-你看,我们lispers最终必须来到这里,谦恭地拿着帽子,寻求帮助。我知道你的第一反应不太恰当,但任何帮助都将不胜感激。
有人在VBA中使用过treeview控件吗?我在以下方面遇到语法错误:
Dim layerfilters As AcadDictionary
Set layerfilters = ThisDrawing.Layers.GetExtensionDictionary.Item("ACAD_LAYERFILTERS")
For Each entry In layerfilters
TreeView1.Nodes.Add(new treenode, entry.name, entry.name, , ,)
Next

VB帮助使用不同的语法:
treeView1.Nodes。添加(新树节点(customer2.CustomerName))
但VBA动态帮助显示了用逗号分隔的参数。有什么见解吗<谢谢-<br>jb
**** Hidden Message *****

jbuzbee 发表于 2006-6-23 13:11:26

试着去掉括号,这不是lisp<pre>Dim layerfilters As AcadDictionary
Set layerfilters = ThisDrawing.Layers.GetExtensionDictionary.Item("ACAD_LAYERFILTERS")
For Each entry In layerfilters
TreeView1.Nodes.Add new treenode, entry.name, entry.name, , ,
Next
我很久没有做树视图了,也没有看这个,只是注意到了。括号的规则是,即使intellisense显示它们,也在等号的右边,是,否则为否。
因此,设置SomeThing=TreeView1.Nodes。添加(新treenode、entry.name、entry.name、、)

树视图1.Nodes。添加新的treenode,条目。名称,条目。名称,
不是
树视图1.Nodes。添加(新树节点,entry.name,entry.name,,)
hi-tee-hoe

Keith™ 发表于 2006-6-23 13:19:17

谢谢Bob -进一步挖掘,我发现了这一点,但仍然不起作用:

Dim layerfilters As AcadDictionary
Set layerfilters = ThisDrawing.Layers.GetExtensionDictionary.Item("ACAD_LAYERFILTERS")
Set nod0 = TreeView1.Nodes.Add(,,"root","All Layers",,)
For Each entry In layerfilters
Set nodekey = entry.Name
Set nodetext = entry.Name
TreeView1.Nodes.Add ,,nodekey,nodetext,,
Next

jbuzbee 发表于 2006-6-23 13:28:17

试试这个...
另外,您正在尝试使用哪个版本的TreeView控件?
Dim layerfilters As AcadDictionary
On Error GoTo NoFilters
Set layerfilters = ThisDrawing.layers.GetExtensionDictionary.Item("ACAD_LAYERFILTERS")
NoFilters:
If layerfilters Is Nothing = False Then
With TreeView1
For Each Entry In layerfilters
   .Nodes.Add , , Entry.Name, Entry.Name
Next
End With
End If

jbuzbee 发表于 2006-6-23 13:51:31

Keith-做到了!谢谢。
这将帮助我完成树视图:接下来我想将适当的层作为子层放在过滤节点下。我会让每个人都保持最新状态!!
再次感谢Keith和Bob-这个论坛很棒。
jb
周末愉快!

jbuzbee 发表于 2006-6-23 13:52:58

它只和提出的问题一样好。
什么的
页: [1]
查看完整版本: 树视图控制