以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  带查找功能的下拉目录树,如何实现如下功能?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=125306)

--  作者:旭日生
--  发布时间:2018/9/25 22:46:00
--  带查找功能的下拉目录树,如何实现如下功能?
版主,怎样实现如下目标?
1、增加一个按钮“全部打开”,即搜索某一个关键字,如“河“,下拉窗口自动打开所有节点包含”河“字的所有节点(不管是一级、二级、三级,还是四级、五级!)。
2、搜索区号中包含”311“,则打开所有包含”311“所对应的所有节点(也不管是一级、二级、三级,还是四级、五级!)。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.foxdb



[此贴子已经被作者于2018/9/25 22:47:34编辑过]

--  作者:有点蓝
--  发布时间:2018/9/25 23:06:00
--  
textchanged事件

Dim drp As WinForm.DropDownBox = e.sender
If drp.DroppedDown Then \'如果下拉窗口已经打开
    Dim txt As String = Forms("窗口1").DropDownBox.Text
    If txt = "" Then
        Return
    End If
    Dim trv As WinForm.TreeView = Forms("窗口1").Controls("TreeView1")
    \'e.Form.StopRedraw
    \'trv.StopRedraw
    Dim p As WinForm.TreeNode
    For i As Integer = 0 To trv.AllNodes.count - 1
        Dim nd As WinForm.TreeNode = trv.AllNodes(i)
        If nd.Text.IndexOf(txt) >= 0 Then
            nd.EnsureVisible
            Application.Doevents
        End If
    Next
    \'trv.ResumeRedraw
    \'e.Form.ResumeRedraw
End If