Sprache: C#
Durchsucht die Knoten eines Treeview rekursiv nach einem Text und liefert den ersten gefundenen Konten zurück
TreeNode FindNode (TreeNodeCollection tncoll, String strText)
{
TreeNode tnFound;
foreach (TreeNode tnCurr in tncoll) {
if (tnCurr.Text.StartsWith (strText)) {
return tnCurr;
}
tnFound = FindNode (tnCurr.Nodes, strText);
if (tnFound != null) {
return tnFound;
}
}
return null;
}
// Beispielaufruf
void SearchTextChanged (Object objSender, EventArgs ea)
{
_tvDir.SelectedNode = FindNode (_tvDir.Nodes, _tbxSearch.Text);
}
TreeNode FindNode (TreeNodeCollection tncoll, String strText)
{
TreeNode tnFound;
foreach (TreeNode tnCurr in tncoll) {
if (tnCurr.Text.StartsWith (strText)) {
return tnCurr;
}
tnFound = FindNode (tnCurr.Nodes, strText);
if (tnFound != null) {
return tnFound;
}
}
return null;
}
// Beispielaufruf
void SearchTextChanged (Object objSender, EventArgs ea)
{
_tvDir.SelectedNode = FindNode (_tvDir.Nodes, _tbxSearch.Text);
}
Alte URL:
/snippet/treeview-rekursiv-durchsuchen/7
Um einen Textausschnitt zu suchen, z.B. ‚arte‘ in ‚Kartenhaus‘, muss man in Zeile 5 ‚tnCurr.Text.StartsWith (strText)‘ durch ‚tnCurr.Text.Contains (strText)‘ ersetzen.