以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何根据找到的目录树节点的路径选中该节点?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=145184)

--  作者:hc-mall
--  发布时间:2020/1/10 22:43:00
--  如何根据找到的目录树节点的路径选中该节点?
如何根据找到的目录树节点的路径选中该节点?同标题!比如找到的目录树节点路径是“一级目录\\二级目录\\三级目录”。实在是没有默认选中找到节点的方法!脑子笨不知道怎么写代码!
--  作者:hc-mall
--  发布时间:2020/1/10 23:09:00
--  
        
Dim spxx_spfl As WinForm.TreeView = Forms("商品信息").Controls("TreeView_SPfl")
Dim td As WinForm.TreeNode
        For Each  td In spxx_spfl.AllNodes
            If td.FullPath = txtfl Then \'如果找到了目标节点
                spxx_spfl.SelectedNode = td
                td.EnsureVisible()
                e.Form.Close()
                Exit For
            End If
        Next

--  作者:hc-mall
--  发布时间:2020/1/10 23:10:00
--  
这是我现在写的代码不行,选中不了
--  作者:有点蓝
--  发布时间:2020/1/10 23:13:00
--  
参考:http://www.foxtable.com/webhelp/topics/2961.htm

简单一点可以

Dim str As String = "一级目录\\二级目录\\三级目录"
Dim tr As WinForm.TreeView = Forms("窗口1").Controls("TreeView1")

For Each n As winform.treenode In tr.AllNodes
    If n.Level = 2 AndAlso n.FullPath = str Then
        tr.SelectedNode = n
        Exit For
    End If
Next


--  作者:hc-mall
--  发布时间:2020/1/10 23:25:00
--  
好像
SelectedNode
的方法需要获取找到节点的各层级父节点的节点位置,直接指定节点选中不了!这是SelectedNode的帮助文档

TreeNode类型,返回或者设置选定的节点。

示例

选定目录树第一个节点的第二个子节点:

Dim tr As WinForm.TreeView
tr = Forms(
"窗口1").Controls("TreeView1")
tr.SelectedNode = tr.Nodes(
0).Nodes(1
)

 


--  作者:hc-mall
--  发布时间:2020/1/10 23:30:00
--  
貌似我写的虽然复杂点,但语法上没有错误,就是选中不了


--  作者:hc-mall
--  发布时间:2020/1/10 23:33:00
--  
我的代码完整应该是这样的
 Dim txtfl As String = "一级目录\\二级目录\\三级目录"    
Dim spxx_spfl As WinForm.TreeView = Forms("商品信息").Controls("TreeView_SPfl")
Dim td As WinForm.TreeNode
        For Each  td In spxx_spfl.AllNodes
            If td.FullPath = txtfl Then \'如果找到了目标节点
                spxx_spfl.SelectedNode = td
                td.EnsureVisible()
                e.Form.Close()
                Exit For
            End If
        Next

--  作者:hc-mall
--  发布时间:2020/1/10 23:35:00
--  
窗口“商品信”选的是独立窗口
--  作者:有点蓝
--  发布时间:2020/1/10 23:36:00
--  
Dim spxx_spfl As WinForm.TreeView = Forms("商品信息").Controls("TreeView_SPfl")
Dim td As WinForm.TreeNode
        For Each  td In spxx_spfl.AllNodes
            If td.FullPath = txtfl Then \'如果找到了目标节点
msgbox(td.FullPath) ‘能弹出来?
                spxx_spfl.SelectedNode = td
                td.EnsureVisible()
                e.Form.Close()
                Exit For
            End If
        Next

--  作者:hc-mall
--  发布时间:2020/1/10 23:40:00
--  
msgbox(td.FullPath) ‘能弹出来?
可以弹出来的