Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    15

    [VB.NET] Aggiunta di SubItem ad una ListView

    Salve a tutti!

    Devo inserire dei dati, prelevati da un file INI, in una ListView (lst_apps) composta da due colonne. Nella prima colonna devo inserire il conenuto della variabile "SoftwareName" mentre nella seconda colonna la variabile "SoftwareVersion". Riesco ad inserire i dati nella prima colonna attraverso questo ciclo:

    codice:
     Do While AppsCount > 0
                SoftwarePath = IniRead(ApplicationPath & "\SETTINGS.ini", "UtilitiesPath", "App" & AppsCount)
                SoftwareName = IniRead(ApplicationPath & "\SETTINGS.ini", "UtilitiesPath", "AppName" & AppsCount)
                SoftwareVersion = IniRead(ApplicationPath & "\SETTINGS.ini", "UtilitiesPath", "AppVersion" & AppsCount)
    
                MyUtility(AppsCount) = SoftwarePath
    
                lst_apps.Items.Add(SoftwareName, AppsCount)
                AppsCount -= 1
            Loop
    Non so però come fare ad aggiungere i SubItem alla seconda colonna. Ho provato con il metodo mostrato su MSDN (https://msdn.microsoft.com/query/dev...4.5%29&rd=true) ma nel mio caso non può funzionare, in quanto non posso sapere a priori quanti Item dovrà contenere la ListView. Il numero degli Item infatti lo prelevo dal file INI (e lo applico alla variabile AppsCount) che verrà modificato dall'utente quando utilizzerà il software.
    Come posso fare?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    Quote Originariamente inviata da money95 Visualizza il messaggio
    Salve a tutti!

    Devo inserire dei dati, prelevati da un file INI, in una ListView (lst_apps) composta da due colonne. Nella prima colonna devo inserire il conenuto della variabile "SoftwareName" mentre nella seconda colonna la variabile "SoftwareVersion". Riesco ad inserire i dati nella prima colonna attraverso questo ciclo:

    codice:
     Do While AppsCount > 0
                SoftwarePath = IniRead(ApplicationPath & "\SETTINGS.ini", "UtilitiesPath", "App" & AppsCount)
                SoftwareName = IniRead(ApplicationPath & "\SETTINGS.ini", "UtilitiesPath", "AppName" & AppsCount)
                SoftwareVersion = IniRead(ApplicationPath & "\SETTINGS.ini", "UtilitiesPath", "AppVersion" & AppsCount)
    
                MyUtility(AppsCount) = SoftwarePath
    
                lst_apps.Items.Add(SoftwareName, AppsCount)
                AppsCount -= 1
            Loop
    Non so però come fare ad aggiungere i SubItem alla seconda colonna. Ho provato con il metodo mostrato su MSDN (https://msdn.microsoft.com/query/dev...4.5%29&rd=true) ma nel mio caso non può funzionare, in quanto non posso sapere a priori quanti Item dovrà contenere la ListView. Il numero degli Item infatti lo prelevo dal file INI (e lo applico alla variabile AppsCount) che verrà modificato dall'utente quando utilizzerà il software.
    Come posso fare?
    Ma cosa c'entra in numero di items?
    Puoi creare un oggetto ListViewItem, all'atto della creazione con New passi "SoftwareName". Poi a tale oggetto aggiungi il subItems con la seconda proprietà che vuoi visualizzare e infine lo aggiungi alla listview.
    codice:
    Dim L as ListViewItem
    
    Do
        L = new ListViewItem(SoftwareName)
        L.SubItems.Add(SoftwareVersion )
        lst_apps.Items.Add(L)
    Loop
    Meglio ancora così:
    codice:
    Dim Item As ListViewItem
    
     CICLO DO
            'Array dei valori che andranno a rappresentare i campi di
            'ogni singola colonna
            Dim Values() As String = {txtProduct.Text, nudPrice.Value, nudQuantity.Value}
    
            'Inizializza Item sulla base dei valori dati
            Item = New ListViewItem(Values)
            'E lo aggiunge alla lista
            lstProducts.Items.Add(Item)
    Ultima modifica di renygade; 19-02-2015 a 22:09

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    15
    Quote Originariamente inviata da renygade Visualizza il messaggio
    Ma cosa c'entra in numero di items?
    Puoi creare un oggetto ListViewItem, all'atto della creazione con New passi "SoftwareName". Poi a tale oggetto aggiungi il subItems con la seconda proprietà che vuoi visualizzare e infine lo aggiungi alla listview.
    codice:
    Dim L as ListViewItem
    
    Do
        L = new ListViewItem(SoftwareName)
        L.SubItems.Add(SoftwareVersion )
        lst_apps.Items.Add(L)
    Loop
    Meglio ancora così:
    codice:
    Dim Item As ListViewItem
    
     CICLO DO
            'Array dei valori che andranno a rappresentare i campi di
            'ogni singola colonna
            Dim Values() As String = {txtProduct.Text, nudPrice.Value, nudQuantity.Value}
    
            'Inizializza Item sulla base dei valori dati
            Item = New ListViewItem(Values)
            'E lo aggiunge alla lista
            lstProducts.Items.Add(Item)
    Ho provato e funziona bene. Adesso però sto rifacendo l'applicazione in WPF ma lo stesso codice non va più bene (ingenuamente ho creduto che i componenti WPF e Windows Form potessero essere usati con lo stesso codice). Mi sono accorto quindi che non è più possibile aggiungere i SubItem allo stesso modo. C'è un modo di fare la stessa cosa che mi hai mostrato nel primo esempio, usando però una ListView in WPF?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    Quote Originariamente inviata da money95 Visualizza il messaggio
    Ho provato e funziona bene. Adesso però sto rifacendo l'applicazione in WPF ma lo stesso codice non va più bene (ingenuamente ho creduto che i componenti WPF e Windows Form potessero essere usati con lo stesso codice). Mi sono accorto quindi che non è più possibile aggiungere i SubItem allo stesso modo. C'è un modo di fare la stessa cosa che mi hai mostrato nel primo esempio, usando però una ListView in WPF?
    Non sarebbe il massimo fare un richiesta del genere su un thread di discussione su un'altro linguaggio.
    Come hai potuto vedere, a livello di sintassi WPF coincide a grandi linee a vb.net, ma a livello di gestione dei controlli c'è una bella differenza, fidati.
    In ogni caso, ti passo questo link:
    http://www.wpf-tutorial.com/listview...with-gridview/

    Se poi hai problemi, apri un'altro thread con del codice testato ed eventuali errori.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2015
    Messaggi
    15

    [RISOLTO] [VB.NET] Aggiunta di SubItem ad una ListView

    Quote Originariamente inviata da renygade Visualizza il messaggio
    Non sarebbe il massimo fare un richiesta del genere su un thread di discussione su un'altro linguaggio.
    Come hai potuto vedere, a livello di sintassi WPF coincide a grandi linee a vb.net, ma a livello di gestione dei controlli c'è una bella differenza, fidati.
    In ogni caso, ti passo questo link:
    http://www.wpf-tutorial.com/listview...with-gridview/

    Se poi hai problemi, apri un'altro thread con del codice testato ed eventuali errori.
    Ho dato un'occhiata al link ma poi ho deciso di rimanere in VB e lasciar perdere WPF. Permette sì di creare interfaccie più belle ma allo stesso tempo WPF rende più complicata e lunga la stesura del codice e non avendo tempo da sprecare nel mio caso è meglio creare un app Windows Form.

    Grazie dell'aiuto!

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.