.NET
Eine TreeView durchsuchen und den gefundenen Pfad aufklappen
Posted on .Da ich heute wieder eine Mail mit der Frage bekommen habe wie man ein Item in einer TreeView finden kann und dieses dann anzeigen kann, dachte ich ich poste es gleich hier falls es noch jemand braucht.
Das Ganze funktioniert sehr einfach mit nur einer kleinen rekursiven Funktion:
''' <summary> ''' Diese Funktion durchläuft den ganzen Treenode bis ein Eintrag gefunden wird der dem Suchbegriff ''' gleicht. Danach wird der Pfad der zu diesem TreeNode führt (zur Visualisierung) aufgeklappt ''' </summary> ''' <param name="tn">Der zu durchsuchende Treenode ''' <param name="name">Der Suchbegriff Public Sub findNode(ByVal tn As TreeNode, ByVal name As String) For Each tnn As TreeNode In tn.Nodes If tnn.Text = name Then Dim t As TreeNode = tnn For i As Integer = tnn.Level To i = 0 Step -1 Try t = t.Parent t.Expand() Catch ex As Exception End Try Next tnn.Parent.Expand() Exit Sub End If findNode(tnn, name) Next End SubHier laufen wir alle Nodes der TreeView durch bis wir auf einen Node stoßen der unserem Suchbegriff entspricht. Ab hier durchlaufen wir den ganzen Weg rückwärts und klappen alle übergeordneten Nodes auf, sodass wir unseren gesuchten Node zu Gesicht bekommen.
Diese Funktion kann man auch ganz gut als Extension Method umschreiben, sodass diese bequemer aufgerufen werden kann, aber das ist dann natürlich jedem selbst überlassen.
Hier noch ein Demoprojekt zum testen: Download [VS 2010]
Sebastian Gross
http://www.bigbasti.comSebastian Gross arbeitet in Bielefeld als Softwareentwickler für .NET und Java im Bereich Web.Als Fan der .NET-Plattform lässt er sich kein Userguppen Treffen und Community Event im Raum OWL entgehen.Dabei hat er eine besondere Vorliebe für das ASP.NET MVC Framework und für das Test Driven Development (TDD) entwickelt.
Author Rene
Posted at 19:51 2. Oktober 2011.
Wirklich Nett! i like it! Wo ist denn der Facebook-Like-Button?