防止Treeview在单击事件时折叠节点

问题描述

我在窗体上使用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属性供参考:

Treeview Control Properties

解决方法

找到了。这是SingleSel属性。

如果您取消选中此选项,则奇怪的行为应该消失了(如果我选中此属性,它将对我显示)。

文档(我拥有旧的CMCTL198.CHM用于通用控件)对此不是很有帮助-

False (Default)   The item doesn't expand when selected. 
True              The item expands when selected.