この関数は、ツリービューで。を含む最初のノードのみを検索しますSearchText
。
private TreeNode SearchNode(string SearchText,TreeNode StartNode)
{
TreeNode node=null;
while (StartNode!= null)
{
if (StartNode.Text.ToLower().Contains(SearchText.ToLower()))
{
node = StartNode;
break;
};
if (StartNode.Nodes.Count != 0)
{
node=SearchNode(SearchText, StartNode.Nodes[0]);//Recursive Search
if (node != null)
{
break;
};
};
StartNode = StartNode.NextNode;
};
return node;
}
private void button1_Click(object sender, EventArgs e)
{
string SearchText = this.textBox1.Text;
if (SearchText == "")
{
return;
};
TreeNode SelectedNode = SearchNode(SearchText, treeView1.Nodes[0]);
if (SelectedNode != null)
{
this.treeView1.SelectedNode = SelectedNode;
this.treeView1.SelectedNode.Expand();
this.treeView1.Select();
};
}
関数が最初のノードだけでなくすべてのノードを検索できるようにするには、どのように変更すればよいですか。クリックするたびに、button1
次のノードが最後まで検索され、最初から開始されます。だから私はからTreeView1.Nodes[0]
ではなく、から検索する必要がありTreeView1.SelectedNode
ます...