Un esempio di utilizzo coordinato di ListView e TreeView e metodi ricorsivi con VB.NET

Per la realizzazione dell’esempio seguire i passi:

·        Aprire un nuovo progetto

·        Aggiungere un controllo SplitContainer al form (MainForm)

·        Aggiungere un controllo ListView a sinistra del SplitContainer (listProdotti)

·        Aggiungere un controllo TreeView a Destra del SplitContainer (listDiba)

·        Aggiungere un DataSet non tipizzato (DsDati)

·        Aggiungere un DataTable al DataSet (“Prodotti”)

·        Aggiungere un Campo “Codice” (intero) a Prodotti -> Primary key

·        Aggiungere un Campo “Descrizione” (string) a Prodotti

·        Aggiungere un DataTable al DataSet (“Diba”)

·        Aggiungere un Campo “Elemento” (integer) a Diba -> Primary Key

·        Aggiungere un Campo “Padre” (integer) a Diba

·        Aggiungere un Campo “Descrizione”, (string) a Diba

 

Aggiungere il codice, se sei pigro scarica l'esempio

 

Public Class MainForm

    Private Elemento As Integer = 100

    Private Sub MainForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim k As Integer

        'Generazione dati

        For k = 1 To 10

            Dim dr As DataRow = DsDati.Tables("Prodotti").NewRow()

            dr("Codice") = k

            dr("Descrizione") = "Prodotto " & k.ToString()

            DsDati.Tables("Prodotti").Rows.Add(dr)

            'Creazione dati tabella distinta base

            For i As Integer = 1 To 2

                CreaDatiDiba(k, 0)

            Next

        Next

        'aggiungiamo i prodotti sulla listview

        PopolaListView()

    End Sub

    Sub PopolaListView()

        listProdotti.Items.Clear()

        For Each dr As DataRow In DsDati.Tables("Prodotti").Rows

            Dim it As New ListViewItem

            it.SubItems(0).Text = dr("Codice").ToString()

            it.SubItems.Add(dr("Descrizione"))

            listProdotti.Items.Add(it)

        Next

    End Sub

 

    Sub CreaDatiDiba(ByVal Padre As Integer, ByVal Livello As Integer)

        'poniamo un limite ai livelli possibili

        If Livello > 5 Then Exit Sub

        Livello += 1

        Elemento += 1

        Dim dr As DataRow = DsDati.Tables("Diba").NewRow()

        dr("Elemento") = Elemento

        dr("Padre") = Padre

        dr("Descrizione") = Elemento.ToString() & " Padre = " & Padre.ToString()

        DsDati.Tables("Diba").Rows.Add(dr)

        Padre = Elemento

        For i As Integer = 1 To 5

            CreaDatiDiba(Padre, Livello)

        Next

    End Sub

 

    Sub PopolaTreeView(ByVal Padre As Integer, ByVal NodoPadre As TreeNode)

        For Each dr As DataRow In DsDati.Tables("Diba").Select("Padre = " & Padre.ToString())

            Dim nodo As New TreeNode(dr("Descrizione"))

            PopolaTreeView(CType(dr("Elemento"), Integer), nodo)

            NodoPadre.Nodes.Add(nodo)

        Next

    End Sub

 

    Private Sub listProdotti_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles listProdotti.Click

        Dim it As ListViewItem = listProdotti.SelectedItems(0)

        Dim Padre As Integer = Integer.Parse(it.SubItems(0).Text)

        treeDiba.Nodes.Clear()

        Dim nodo As New TreeNode(Padre.ToString())

        PopolaTreeView(Padre, nodo)

        treeDiba.Nodes.Add(nodo)

    End Sub

End Class 

 

Print | posted on venerdì 12 ottobre 2007 20:15

Feedback

# Un esempio di utilizzo coordinato di ListView e TreeView e metodi ricorsivi con VB.NET

Left by Il blog di Luciano Bastianello at 28/04/2006 15:36
Gravatar

# re: Un esempio di utilizzo coordinato di ListView e TreeView e metodi ricorsivi con VB.NET

Left by marpa56 at 22/02/2007 13:54
Gravatar utilissimo e mi hai fatto capire come funziona :)))

solo beh , per poter girare ho dovuto aggiungere .tostring in questa riga :
it.SubItems.Add(dr("Descrizione"))

# re: Un esempio di utilizzo coordinato di ListView e TreeView e metodi ricorsivi con VB.NET

Left by N00b at 29/04/2007 23:00
Gravatar Ora devo solo capire come applicare questo per aggiungere un "file explorer" al mio progetto...

Grazie comunque!

# re: Un esempio di utilizzo coordinato di ListView e TreeView e metodi ricorsivi con VB.NET

Left by gianni at 08/11/2008 22:07
Gravatar n

# re: Un esempio di utilizzo coordinato di ListView e TreeView e metodi ricorsivi con VB.NET

Left by gianni at 08/11/2008 22:41
Gravatar mnb

# re: Un esempio di utilizzo coordinato di ListView e TreeView e metodi ricorsivi con VB.NET

Left by adolfo cellai at 11/09/2010 19:58
Gravatar molto ben esposto e formativo

Your comment:





 
Please add 7 and 2 and type the answer here:

Copyright © Luciano Bastianello

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski