vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 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 - Fortgeschrittene
Re: treeView 
Autor: T.C.McQueen
Datum: 30.07.03 15:33

Also:
Um herauszufinden, ob ein Knoten keine Childs mehr besitzt, musst du die GetNodesCount - Funktion des Knotens abrufen, von dem du wissen willst, ob dieser Childs hat oder nicht.

Und ob ein Knoten ge-checkt ist, oder nicht hängt von dem Wert der Checked - Eigenschaft desselben Knotens ab.

Hier kommst du allerdings nicht an einer rekursiven Funktion vorbei .

Erstmal Kriterien sammeln.
So wie ich dich verstanden habe, willst du alle diejenigen Knoten herausbekommen, die wie du schon sagtest ge-checkt sind und zudem keine Childs mehr besitzen.

Jetzt müssen wir festlegen, wie wir suchen wollen. Demnach sollten wir alle diejenigen Knoten durchsuchen, die nicht ge-checkt sind aber Unterknoten haben, richtig ?

Dazu erstellen wir erstmal eine Funktion, die sich selbst für jeden weiteren Unterknoten aufruft, also sozusagen 'rekursiv' arbeitet:

Private Sub SucheKnoten(ByRef Hauptknoten as TreeNode)
 
End Sub
Den Parameter Hauptknoten brauchen wir, damit der Knoten an die Funktion übergeben wird, welcher nach Unterknoten durchsucht werden soll.

Jetzt bauen wir eine Schleife ein, um jeden Unterknoten dieses Unterknotens zu durchsuchen:

Private Sub SucheKnoten(ByRef Hauptknoten as TreeNode)
    Dim i as Integer
    For i = 0 To Hauptknoten.GetNodesCount(False) - 1
        If Hauptknoten.Nodes.Item(i).Checked Then
        'Dieser Unterknoten ist gecheckt: Prüfen auf Unterknoten
            If Hauptknoten.Nodes.Item(i).GetNodesCount(False) = 0 Then
            'Dieser Knoten besitzt keine Unterknoten, also erfüllt er die 
            ' Kriterien!
            'GEFUNDEN!
            End If
        Else 'Unterknoten nicht gecheckt : Prüfen auf Unterknoten
            If Hauptknoten.Nodes.Item(i).GetNodesCount(False) > 0 Then
                'Unterknoten in diesen Unterknoten suchen und so weiter und so 
                ' fort
                SucheKnoten(Hauptknoten.Nodes.Item(i))
            End If
    Next i
End Sub
Es werden also jetzt alle Unterknoten eines angegebenen Hauptknotens durchsucht und wenn ein gefundener Unterknoten gecheckt ist, wird überprüft, ob dieser selbst Unterknoten beinhaltet oder nicht. Falls nicht, dann entspricht er unseren Kriterien und man kann mit ihm nun machen, was man will.
Ist ein Unterknoten NICHT gecheckt, dann wird überprüft, ob er selbst Unterknoten beinhaltet, falls ja, dann werden auch diese Unterknoten durchsucht u.s.w...

Da der Funktion immer erst ein Hauptknoten übergeben werden muss, solltest du noch eine ähnliche Funktion in das CommandButton Click-Ereignis einbauen, die erstmal alle Hauptknoten des TreeViews selbst durchsucht.

Gruß,
T.C.McQueen
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
treeView148merit30.07.03 10:39
Re: treeView1.340T.C.McQueen30.07.03 13:36
Re: treeView85merit30.07.03 14:23
Re: treeView1.527T.C.McQueen30.07.03 15:33
Re: treeView85merit31.07.03 09:01
Re: treeView1.316T.C.McQueen31.07.03 10:47
Re: treeView74merit31.07.03 11:42

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