【发布时间】:2018-01-07 01:56:45
【问题描述】:
代码如下;逻辑中看起来有问题,没有显示错误消息。
我正在尝试使用 textbox1.text on change 事件过滤 treeview1 控件。
预期结果是在treeview1 中保留仅与textbox1.text 相似的节点(SQL 中的%text%)
我在 C# 中找到了很多解决方案的结果,但在 VB.NET 中找不到。
Referencing this answer,并将代码转换为 VB.NET,几乎没有什么变化:
Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
Try
Dim FilterText As String = TextBox1.Text
TreeView1.BeginUpdate()
If (FilterText IsNot String.Empty) Then
For Each Node As TreeNode In TreeView1.Nodes
If Not Node.Text.Contains(FilterText) Then
Node.Remove()
TreeView1.Refresh()
End If
Next
Else
Exit Sub
End If
TreeView1.EndUpdate()
Catch ex As Exception
End Try
End Sub
【问题讨论】:
-
我认为最好隐藏节点而不是删除它,以防它需要再次显示。
-
该代码无法编译...
(FilterText String.Empty)... -
修复了代码错误,谢谢@Codexer,还是一样
-
The expected result is to keep in treeview1 the nodes that only similar to textbox1.text (%text% in SQL)那么当您逐步进行调试时发生了什么,您会得到什么? -
Node.Remove()正在运行,但在TreeView1中仍然没有显示,而且它忽略了代码中的第一个节点,注意到TreeView中的所有节点都是父节点。一旦到达最后一个节点,我现在就会得到Object reference not set to an instance of an object。
标签: vb.net winforms filter treeview visual-studio-2017