Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.Net-如何在所有树视图节点中动态搜索字符串展开和折叠与搜索字符串匹配(或不匹配)的节点?_Vb.net_Search_Treeview_Collapse_Expand - Fatal编程技术网

VB.Net-如何在所有树视图节点中动态搜索字符串展开和折叠与搜索字符串匹配(或不匹配)的节点?

VB.Net-如何在所有树视图节点中动态搜索字符串展开和折叠与搜索字符串匹配(或不匹配)的节点?,vb.net,search,treeview,collapse,expand,Vb.net,Search,Treeview,Collapse,Expand,我正在尝试在treeview组件上实现动态搜索,我几乎完成了,只是因为它是基于textbox的textchanged事件的动态搜索,搜索字符串的第一个字符总是被找到,所以搜索函数会扩展所有节点,因为它们是有效的匹配项 问题是,随着搜索字符串变得更加完整,那些在匹配时展开的节点现在需要折叠,因为它们不再匹配搜索字符串。。。而这并没有发生。。。当搜索字符串改变时,我还找不到一种方法来自动折叠和扩展节点 我已经上传了一段视频和Visual Studio 2012解决方案,所以你可以看一下,看看我把球扔

我正在尝试在treeview组件上实现动态搜索,我几乎完成了,只是因为它是基于textbox的textchanged事件的动态搜索,搜索字符串的第一个字符总是被找到,所以搜索函数会扩展所有节点,因为它们是有效的匹配项

问题是,随着搜索字符串变得更加完整,那些在匹配时展开的节点现在需要折叠,因为它们不再匹配搜索字符串。。。而这并没有发生。。。当搜索字符串改变时,我还找不到一种方法来自动折叠和扩展节点

我已经上传了一段视频和Visual Studio 2012解决方案,所以你可以看一下,看看我把球扔到哪里了

这是我执行搜索的函数的代码:(您可以在视频中看到它按预期工作,因此我的问题是节点在匹配(或不匹配)搜索字符串时展开/折叠

我在“FindRecursive”函数中实现了一些折叠和扩展节点的想法,但它没有按预期工作。由于我的错误逻辑,我甚至成功地将控件放入无限循环中

任何帮助都将不胜感激

Tks


在我最初的评论之后,尝试以下方式:

Private Sub txtFiltroIDs_TextChanged(sender As Object, e As EventArgs) Handles txtFilterToolIDs.TextChanged
    tviewToolIDs.BeginUpdate()
    tviewToolIDs.CollapseAll()
    ClearBackColor()
    FindByText()
    tviewToolIDs.EndUpdate()
    tviewToolIDs.Refresh()
End Sub

因此,除了在为新搜索“重置”时更改背景色外,还需要更改节点。这样,只有匹配项才会展开并使用新搜索结果着色。目前,您正在使用
CollapseAll()进行此操作
,但那只是在搜索框完全为空的情况下。请注意,谢谢您的回复…我试图在“FindRecursive”的开头添加一个tviewToolIDs.CollapseAll()函数…它挂起应用程序..您还需要在重置所有内容,然后对匹配项进行着色/扩展时抑制重新绘制。您可以通过调用、执行所有更改,然后调用以允许它在新状态下重新绘制来执行此操作。
Private Sub txtFiltroIDs_TextChanged(sender As Object, e As EventArgs) Handles txtFilterToolIDs.TextChanged
    tviewToolIDs.BeginUpdate()
    tviewToolIDs.CollapseAll()
    ClearBackColor()
    FindByText()
    tviewToolIDs.EndUpdate()
    tviewToolIDs.Refresh()
End Sub