Foxtable(狐表)用户栏目专家坐堂 → 目录树查找定位


  共有2098人关注过本帖树形打印复制链接

主题:目录树查找定位

帅哥哟,离线,有人找我吗?
实话实说
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
目录树查找定位  发帖心情 Post By:2016/12/20 11:29:00 [只看该作者]

当目录树节点很多时需要查找定位,想在窗口1中按型号规格组合查找定位(型号和规格之间空1格),谁能给出代码.

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:目录树定位.zip


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/20 12:15:00 [只看该作者]

Dim arr() As String = e.Form.Controls("型号规格").text.split(" ")
Dim xh,gg As String
If arr.length > 0 Then
    xh = arr(0)
End If
If arr.Length > 1 Then
    gg = arr(1)
End If

Dim trv As WinForm.TreeView =  e.Form.Controls("TreeView1")
Dim Start As Integer
Dim idx As Integer = - 1
If trv.SelectedNode IsNot Nothing Then '获取当前节点位置.
    Dim fullpath As String = trv.SelectedNode.FullPath
    For i As Integer = 0 To trv.AllNodes.count - 1
        If trv.AllNodes(i).fullpath = fullpath Then
            Start = i
            Exit For
        End If
    Next
End If
For i As Integer = Start + 1 To trv.AllNodes.count - 1  '从当前节点的下一个节点开始查找
    Dim nd As WinForm.TreeNode = trv.AllNodes(i)
    If gg > "" Then
        If nd.text.IndexOf(gg) >= 0 Then
            If xh > "" Then
                If nd.ParentNode.Text.IndexOf(xh) >= 0 Then
                    trv.SelectedNode = nd
                    nd.EnsureVisible
                    idx = i '将找到的位置复制给变量idx
                    Exit For
                End If
            Else
                trv.SelectedNode = nd
                nd.EnsureVisible
                idx = i '将找到的位置复制给变量idx
                Exit For
            End If
        End If
    Else
        If xh > "" Then
            If nd.ParentNode.Text.IndexOf(xh) >= 0 Then
                trv.SelectedNode = nd
                nd.EnsureVisible
                idx = i '将找到的位置复制给变量idx
                Exit For
            End If
        End If
       
    End If
Next
If idx = -1 Then
    msgbox("找完了")
End If
trv.Select()


 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2016/12/20 13:09:00 [只看该作者]

谢了.

 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2016/12/20 14:12:00 [只看该作者]

还想完善一下:在同一个控件中,不仅对型号规格组合查找,还需要对型号或规格单独查找.
[此贴子已经被作者于2016/12/20 14:12:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/20 15:18:00 [只看该作者]

 代码本身就有。请看懂代码,自己调整。

 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2016/12/20 15:37:00 [只看该作者]

不好意思,试了一下还是没搞定。型号和规格中间的空格有些困惑。

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/20 15:41:00 [只看该作者]

 查型号,就直接写型号。

 

 查规格,就空格再写规格。


 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2016/12/20 15:50:00 [只看该作者]

单查型号出错,空一格查规格没问题,如果没空格就出错,希望有纠错提示。


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/20 15:57:00 [只看该作者]

第几级节点是型号,第几级节点是规格?下面的代码,任意匹配的,没有涉及到层级关系。

 

Dim arr() As String = e.Form.Controls("型号规格").text.split(" ")
Dim xh,gg As String
If arr.length > 0 Then
    xh = arr(0)
End If
If arr.Length > 1 Then
    gg = arr(1)
End If

Dim trv As WinForm.TreeView =  e.Form.Controls("TreeView1")
Dim Start As Integer
Dim idx As Integer = - 1
If trv.SelectedNode IsNot Nothing Then '获取当前节点位置.
    Dim fullpath As String = trv.SelectedNode.FullPath
    For i As Integer = 0 To trv.AllNodes.count - 1
        If trv.AllNodes(i).fullpath = fullpath Then
            Start = i
            Exit For
        End If
    Next
End If
For i As Integer = Start + 1 To trv.AllNodes.count - 1  '从当前节点的下一个节点开始查找
    Dim nd As WinForm.TreeNode = trv.AllNodes(i)
    If gg > "" Then
        If nd.text.IndexOf(gg) >= 0 Then
            If xh > "" Then
                If nd.ParentNode.Text.IndexOf(xh) >= 0 Then
                    trv.SelectedNode = nd
                    nd.EnsureVisible
                    idx = i '将找到的位置复制给变量idx
                    Exit For
                End If
            Else
                trv.SelectedNode = nd
                nd.EnsureVisible
                idx = i '将找到的位置复制给变量idx
                Exit For
            End If
        End If
    Else
        If xh > "" Then
            If nd.Text.IndexOf(xh) >= 0 Then
                trv.SelectedNode = nd
                nd.EnsureVisible
                idx = i '将找到的位置复制给变量idx
                Exit For
            End If
        End If
       
    End If
Next
If idx = -1 Then
    msgbox("找完了")
End If
trv.Select()


 回到顶部
帅哥哟,离线,有人找我吗?
实话实说
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2649 积分:19390 威望:0 精华:1 注册:2008/9/12 9:19:00
  发帖心情 Post By:2016/12/20 16:17:00 [只看该作者]

空一格查型号也没问题

 回到顶部
总数 12 1 2 下一页