以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何把长目录树路径分开,组成筛选加载的条件  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=191397)

--  作者:采菊东篱下
--  发布时间:2024/4/14 21:43:00
--  如何把长目录树路径分开,组成筛选加载的条件

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20240414211452.png
图片点击可在新窗口打开查看

作为基本信息资料,我把分页显示的规律的地址分列显示,并写了代码自动排序,可加载目录树最大层数只能去到6层,超过第6层报错,为让这些关键信息都能完整显示在加载目录树里,方便通过目录树下的文本框、按钮,定位、加载,我已经成功把目录合成为上图效果,即把巷、号、房三列用\\分隔,合并为一层,姓名、手机号码两列也用\\分隔,合并为一层,这样层数缩减了,效果一看也明白代表什么,就是到勾选目录树时如何安\\把它们分开,组合成加载条件,我通过下面的代码测试,弹出的数据安层逐层弹出,用\\分隔的内容重复出现,如何让它们不重复出现?
Dim trv As WinForm.TreeView = e.Sender
For Each nd In trv.AllNodes
Dim rts() As String = nd.FullPath.Split("\\")
MessageBox.Show(nd.FullPath)
Next

--  作者:有点蓝
--  发布时间:2024/4/14 22:21:00
--  
什么东西重复出现了?截图举例说明一下

如果要和FullPath的分隔区分,就不要在自己的节点使用【\\】做分隔符,改为使用其它符号
--  作者:采菊东篱下
--  发布时间:2024/4/14 22:37:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20240414223220.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20240414223427.png
图片点击可在新窗口打开查看



--  作者:采菊东篱下
--  发布时间:2024/4/14 22:38:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20240414223321.png
图片点击可在新窗口打开查看

--  作者:采菊东篱下
--  发布时间:2024/4/14 22:39:00
--  
依上面的次序出现,我只要最后一次弹窗的效果。
--  作者:采菊东篱下
--  发布时间:2024/4/14 22:43:00
--  
我是刻意把分隔符写成与FullPath默认的分隔符一样,这样方便分离数组,如改为其他符号,又要费一番心思写代码把它们分离、组合成最后一张图的效果,我只要最后一次出现的效果,面前出现的不要。
[此贴子已经被作者于2024/4/14 23:13:48编辑过]

--  作者:采菊东篱下
--  发布时间:2024/4/14 22:47:00
--  
哦勾选了三层,因此出现了三个弹窗,同一路径下只取最后一层的路径,其他的不要。
--  作者:有点蓝
--  发布时间:2024/4/14 23:12:00
--  
代码放在什么事件的?完整代码发上来看看。

可以判断节点是否有子节点,就可以知道是不是最后一层,但是觉得没有必要判断所有节点

For Each nd In trv.AllNodes
if nd.nodes,count  = 0
Dim rts() As String = nd.FullPath.Split("\\")
MessageBox.Show(nd.FullPath)
end if
Next
[此贴子已经被作者于2024/4/14 23:13:37编辑过]

--  作者:采菊东篱下
--  发布时间:2024/4/14 23:29:00
--  
我说的最后一层是指勾选的最后一层,它不一定是目录树同一路径的最后一层,是不用循环,直接判断是否已勾选的最后一层,如果是取其路径就行,筛选树的完整代码我还在琢磨,目录村改为这样显示后原来的代码已经不合用了。
--  作者:采菊东篱下
--  发布时间:2024/4/14 23:32:00
--  
代码放在AfterCheckNode事件,勾选字节后筛选数据。