问题描述
我在窗体上使用MS Treeview控件v6,并且Treeview控件的默认行为似乎是,与您单击的子节点相比,属于不同分支的子节点会自动折叠。因此,如果有一个像这样的Treeview:
- 根
- 孩子1
- 儿童2
- 孩子3
- 父母
- 孩子4
- 5岁儿童
- 6岁儿童
如果我单击子代5,则子代1到3的节点会自动折叠(这是不希望的),如下所示:
- 根
- 父母
- 孩子4
- 5岁儿童
- 6岁儿童
这是树视图的代码:
Private Sub Form_Load()
Dim nodX As Node
Set nodX = TreeView1.Nodes.Add(,"R","Root")
nodX.Expanded = True
Set nodX = TreeView1.Nodes.Add(,"P","Parent")
nodX.Expanded = True
Set nodX = TreeView1.Nodes.Add("R",tvwChild,"Child 1")
Set nodX = TreeView1.Nodes.Add("R","Child 2")
Set nodX = TreeView1.Nodes.Add("R","Child 3")
Set nodX = TreeView1.Nodes.Add("P","Child 4")
Set nodX = TreeView1.Nodes.Add("P","Child 5")
Set nodX = TreeView1.Nodes.Add("P","Child 6")
End Sub
我可以确定的一种解决方法是在发生节点单击事件时扩展Treeview中的每个节点:
For Each nodX In Me.Treeview1.Nodes
nodX.Expanded = True
Next nodX
但是,这样做的问题是我正在处理Access文件中有数百个节点,并且该代码撤消了我可能已经完成的Treeview节点的任何手动折叠/导航操作。
我已经研究了文档,但是似乎没有任何设置可以防止这种默认的节点自动崩溃行为发生。我希望也许有人确实知道可以对其进行调整以解决此问题的属性。
* Edit:更具体地说,当查看具有更多节点的Treeview时,其行为是当我单击其他分支中的一个节点时,先前选择的分支会崩溃(不一定是其他所有分支)分支)。
以下是Treeview属性供参考:
解决方法
找到了。这是SingleSel
属性。
如果您取消选中此选项,则奇怪的行为应该消失了(如果我选中此属性,它将对我显示)。
文档(我拥有旧的CMCTL198.CHM用于通用控件)对此不是很有帮助-
False (Default) The item doesn't expand when selected.
True The item expands when selected.