0

DataGridView我以前TreeViewTextBox. 我有很多节点。

目前,这有效,但它是一个“仅删除”功能,如果我从textBox. 提前致谢。

//Change in text will hide non matching nodes (remove only)
for (int i = 0; i<dirTree.Nodes.Count; i++)
{
    if(!dirTree.Nodes[i].Text.Contains(custNameTB.Text))
    {
       dirTree.Nodes.RemoveAt(i);
    }
}
4

2 回答 2

1

也许在内存中保留一个所有节点作为子节点的“主”节点。如果没有搜索文本,则只需将其添加到树视图中。然后,如果输入了搜索文本,则通过“主”节点并使用它来创建另一个过滤节点(将所需节点作为子节点)并将其添加到树视图中。

基本上你只是在节点上创建 2 个集合。我拥有所有节点(永久)和另一个只有所需节点的副本(临时)。

于 2012-08-17T23:23:16.370 回答
0

你不能让你的节点不可见(你必须添加/删除它)为什么因为如何让一个节点可见而他的子节点可见它会很困难(想象十个嵌套节点与 5 不行..)另一个解决方案是存储您的树视图(在树视图中您设置为不可见或在数据表中但更复杂)并有一个树视图要显示,因此如果您删除节点,它仅在重复的树视图上(不可见的树视图将保留并且您不会丢失节点)

于 2012-08-17T23:01:00.773 回答