vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 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: Treenode verschieben & sortieren 
Autor: Maywood
Datum: 18.03.05 20:05

>> Das Problem dabei ist das ich keine Funktion gefunden habe wie ich die Sortierung des Treeviews zur Laufzeit ausführe. I

Mir ist ebenfalls keine .NET Methode bekannt...aber..

Du könntest bspw. auf die ArrayList.Sort() Methode zurückgreifen. Dieser müsstest du nur einen eigenen "Comparer" übergeben.

Hier ein kl. Bsp.:
Option Explicit On
Option Strict On
 
Public Class Form1
    Inherits Form
 
    '// Windows Designer
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        '// sort the nodes
 
        Dim tn As TreeNode = Me.TreeView1.Nodes(0) '// root
        Dim arr As New ArrayList()
        arr.AddRange(tn.Nodes)
        arr.Sort(New MyComparer())
        '// arr.Reverse 
        tn.Nodes.Clear()
        Dim nodes As TreeNode() = CType(Array.CreateInstance(GetType(TreeNode), _
          arr.Count), TreeNode())
        arr.CopyTo(nodes)
        tn.Nodes.AddRange(nodes)
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        '// fill treeview with nodes
 
        Dim root, tn As TreeNode
        Dim r As New Random()
        root = New TreeNode("root")
        While root.Nodes.Count < 20
            tn = New TreeNode(r.Next.ToString)
            tn.Tag = CInt(tn.Text)
            root.Nodes.Add(tn)
        End While
        Me.TreeView1.Nodes.Add(root)
    End Sub
End Class
 
Public Class MyComparer
    '// MyComparer
 
    Implements IComparer
    Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _
      Implements System.Collections.IComparer.Compare
        Dim tn1 As TreeNode = CType(x, TreeNode)
        Dim tn2 As TreeNode = CType(y, TreeNode)
        Return (CInt(tn1.Tag).CompareTo(CInt(tn2.Tag)))
    End Function
End Class
Ich denke, der Code ist (fast) selbsterklärend
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Treenode verschieben & sortieren1.938Easyrider18.03.05 12:38
Re: Treenode verschieben & sortieren1.065Maywood18.03.05 20:05
Re: Treenode verschieben & sortieren985Easyrider21.03.05 11:59

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