以文本方式查看主题
- 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事件,勾选字节后筛选数据。
|