vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Treeview - Nodes richtig selektieren 
Autor: ErfinderDesRades
Datum: 09.05.14 20:04

"Blind" Rekursiv alle Nodes durchsuchen find ich nicht so schön.
Ich hab einen iterativen Ansatz, der die baumartige Struktur nutzt, um zielgerichtet anhand eines Pfades einen Node aufzusuchen.
Module Extensions
 
   <Extension()> _
   Public Function Approach(TV As TreeView, NodePath As String) As TreeNode
      Return TV.Nodes.Approach(NodePath.Split(New String() {TV.PathSeparator}, _
        StringSplitOptions.None))
   End Function
 
   <Extension()> Public Function Approach(Nodes As TreeNodeCollection, _
     PathSegments As IList(Of String)) As TreeNode
      Dim Nd As TreeNode = Nothing, I As Integer
      For I = 0 To PathSegments.Count - 1
         Dim tmp = Nodes.ByText(PathSegments(I))
         If tmp Is Nothing Then Exit For
         Nd = tmp
         Nodes = Nd.Nodes
      Next
      Return Nd
   End Function
 
   <Extension()> _
   Public Function ByText(Nodes As TreeNodeCollection, text As String) As _
   TreeNode
      For Each nd As TreeNode In Nodes
         If String.Compare(nd.Text, text, True) = 0 Then Return nd
      Next
      Return Nothing
   End Function
Das ist jetzt aber schon eine Vereinfachung, und returnt nur Nothing, falls der Pfad im TV nicht vorhanden ist.

In Wirklichkeit gebe ich eine selbstgebastelte Klasse "ApproachResult" zurück, die aussagt, bis wie weit noch Übereinstimmungen gefunden werden konnten.
ApproachResult ist nützlich für Dateisystem-Treeviews mit LazyLoading, also die nicht gleich komplett befüllt sind, sondern sich erst nachträglich befüllen, wenn ein Node expandiert wird.

(Rechtschreibfehler urheberrechtlich geschützt)

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Treeview - Nodes richtig selektieren3.431Volker Bunge09.05.14 13:26
Re: Treeview - Nodes richtig selektieren2.474Manfred X09.05.14 13:39
Re: Treeview - Nodes richtig selektieren2.510Volker Bunge09.05.14 15:37
Re: Treeview - Nodes richtig selektieren2.478Manfred X09.05.14 15:58
Re: Treeview - Nodes richtig selektieren2.524ErfinderDesRades09.05.14 20:04

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel