vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 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: Schlaife für menü - unbekannte anzahl lvl 
Autor: rub
Datum: 27.11.07 16:41

Hab ich auch so gemacht. Eine Funktion die sich aufruft (bzw. habe ich noch eine für die Hauptknotenpunkte vorangestellt) und das aktuelle Element an genau diese übergibt. Darin wird dann ein neues Element angelegt und wenn es weiter verschachtelt werden soll, dann wird das gerade erstellte Element weitergegeben usw.

Wiso soll das nicht elegant sein?
Der Code bleibt dabei doch recht übersichtlich, oder?
Bei mir sieht das so aus
    '''<summary>
    '''                 Diese Funktion erstellt die Hauptknotenpunkte des 
    ' Treeviews
    '''                 anhand der gegebenen Tabelle. Die Unterpunkte werden 
    ' durch den 
    '''                 aufruf der gleichnamigen Überschreibung dieser Funktion 
    ' erstellt, 
    '''                 welche innerhalb dieser Funktion aufgerufen wird.
    '''                 Die Tabelle, auf welcher die Funktion basiert besitzt 
    ' ein ID-Feld 
    '''                 und ein ParentID-Feld. 
    '''                 Die Werte des ParentID-Feldes beziehen sich auf die ID 
    ' der selben Tabelle.
    ''' 
    '''*** Achtung:     'Prüfen und anpassen (sehr performancelastig) (Set _
      Table)
    '''</summary>
    Private Sub InitTree()
        If Me.InvokeRequired Then
            Dim dd As New MeDelegate(AddressOf InitTree)
            Me.Invoke(dd, New Object() {})
        Else
            If Me.UltraTree1.InvokeRequired = True Then
                Dim dd As New MeDelegate(AddressOf InitTree)
                Me.UltraTree1.Invoke(dd, New Object() {})
            Else
                Try
                    Dim childNode As New _
                      Infragistics.Win.UltraWinTree.UltraTreeNode
                    Dim dv As New DataView
 
                    Try
                        dv.Table = _
                          cup_System.cls_System_Global.DS_System_Help.tblHelp
                        dv.RowFilter = "ParentID ='" & -1 & "'"
                        dv.Sort = "IndexNumber"
                    Catch ex As Exception
                        Me.Co_SystemComponent1.ErrorMail(Me.Name, New _
                          StackFrame().GetMethod().Name, ex, "1", False, True, _
                          False, False)
                    End Try
 
                    For i As Integer = 0 To dv.Count - 1
                        Try
                            childNode = New _
                              Infragistics.Win.UltraWinTree.UltraTreeNode
 
                            '*** Aufruf der Überschreibung um untergeordnete 
                            ' Nodes zu erstellen.
                            childNode = InitTree(childNode, CType(dv.Item( _
                              i).Item("ID"), Integer))
 
                            childNode.Key = dv.Item(i).Item( _
                              "IndexDescription").ToString
                            childNode.Text = dv.Item(i).Item( _
                            "IndexDescription").ToString
                            If childNode.Nodes.Count > 0 Then
                                childNode.LeftImages.Add(Me.PictureBox1.Image)
                            End If
                            Me.UltraTree1.Nodes.Add(childNode)
 
                        Catch ex As System.ArgumentException
                            'Do nothing
                            'Tritt ein durch me.ShowInTaskbar von frmMain_Load
                            'Key already exists, key: Index
                        Catch ex As Exception
                            Me.Co_SystemComponent1.ErrorMail(Me.Name, New _
                              StackFrame().GetMethod().Name, ex, "2", False, _
                              True, False, False)
                        End Try
                    Next
                Catch ex As Exception
                End Try
            End If
        End If
    End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Schlaife für menü - unbekannte anzahl lvl844WarFare27.11.07 15:52
Re: Schlaife für menü - unbekannte anzahl lvl560WarFare27.11.07 16:03
Re: Schlaife für menü - unbekannte anzahl lvl597rub27.11.07 16:41
Re: Schlaife für menü - unbekannte anzahl lvl967rub27.11.07 16:41

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