Visualizzazione dei risultati da 1 a 8 su 8

Discussione: VB 2005 ListBox

  1. #1
    Utente di HTML.it L'avatar di calas
    Registrato dal
    Jul 2008
    Messaggi
    23

    VB 2005 ListBox

    Salve ragazzi .... piccolo quesito

    Vorrei fare in modo che gli elementi Checkati in una listbox siano riportati in una listview e fino a qui non ho problemi ...ma il mio problema è che se clicco una seconda volta sulla stessa voce per eliminarla questa invece di sparire dalla listview mi viene scritta una seconda volta...

    come posso fare per far riportare solo le voci Checkate nella lista ed eventualmente eliminare le voci che deseleziono?


    grazie a tutti!

  2. #2
    Utente di HTML.it L'avatar di tekanet
    Registrato dal
    Oct 2001
    Messaggi
    299
    Prima di fare l'aggiunta alla tree, controlla che l'elemento non esista già: se esiste, lo rimuovi. Se non esiste, lo aggiungi.

    HTH, tK

  3. #3
    Utente di HTML.it L'avatar di calas
    Registrato dal
    Jul 2008
    Messaggi
    23
    Originariamente inviato da tekanet
    Prima di fare l'aggiunta alla tree, controlla che l'elemento non esista già: se esiste, lo rimuovi. Se non esiste, lo aggiungi.

    HTH, tK
    Questo è il codice che uso...


    If (CPUListBox1.SelectedItem <> "") Then
    Dim Entry As Object
    For Each Entry In CPUListBox1.CheckedItems
    ListView1.Items.Add(Entry.ToString())
    Next
    end if

    tu come faresti?

  4. #4
    Originariamente inviato da calas
    Questo è il codice che uso...

    If (CPUListBox1.SelectedItem <> "") Then
    Dim Entry As Object
    For Each Entry In CPUListBox1.CheckedItems
    ListView1.Items.Add(Entry.ToString())
    Next
    end if

    tu come faresti?
    Ciao Calas.
    A prescindere dal fatto che il codice che hai scritto si potrebbe migliorare..... nel senso che Entry dovresti tipizzarlo in quanto elemento di una collection di items(ma solo per evitare conversioni a runtime).
    Con il codice che hai scritto, aggiungi un elemento ad un listview a prescindere dal fatto che sia già presente o meno reiterando ogni volta tutta la collection di items.
    Quindi le cose sono 2:
    O prima di reiterare le CheckedItems, fai un listview1.clear .... ma non sarebbe il massimo
    Oppure.....aggiungi(o rimuovi) alla listview solo l'item interessato al momento dello scatenarsi dell'evento(che non hai mostrato) che usi per eseguire il codice che hai postato.

    Facci sapere...
    Ciao

  5. #5
    Utente di HTML.it L'avatar di calas
    Registrato dal
    Jul 2008
    Messaggi
    23
    Originariamente inviato da Jeremy75
    Ciao Calas.
    A prescindere dal fatto che il codice che hai scritto si potrebbe migliorare..... nel senso che Entry dovresti tipizzarlo in quanto elemento di una collection di items(ma solo per evitare conversioni a runtime).
    Con il codice che hai scritto, aggiungi un elemento ad un listview a prescindere dal fatto che sia già presente o meno reiterando ogni volta tutta la collection di items.
    Quindi le cose sono 2:
    O prima di reiterare le CheckedItems, fai un listview1.clear .... ma non sarebbe il massimo
    Oppure.....aggiungi(o rimuovi) alla listview solo l'item interessato al momento dello scatenarsi dell'evento(che non hai mostrato) che usi per eseguire il codice che hai postato.

    Facci sapere...
    Ciao
    Ciao
    non ho descritto l'evento perchè non mi sembrava importante .... potrebbe essere sia il click sulla casella della listbox a lanciare il codice che copia nella listview sia un click su un bottone alla fine delle selezioni.... (questo è il caso che ho scelto)
    il problema sta proprio nelle ultime parole che mi hai scritto
    Oppure.....aggiungi(o rimuovi) alla listview solo l'item interessato al momento dello scatenarsi dell'evento
    non riesco a fare il "RIMUOVI" ho provato con
    Item.clear e con item.remove ma nulla...
    ho anche provato a fare un selectedItem.clear sull'evento click della listview ma non succede nulla ...o al massimo mi da errore durante l'esecuzione!

  6. #6
    non riesco a fare il "RIMUOVI" ho provato con
    Item.clear e con item.remove ma nulla...
    ho anche provato a fare un selectedItem.clear sull'evento click della listview ma non succede nulla ...o al massimo mi da errore durante l'esecuzione!
    Prova ad usare Lst.Items.RemoveByKey(Entry.ToString()) oppure
    RemoveAt(Index) se conosci l'indice della chiave da eliminare .... dove Lst è il nome della tua listview(lo specifico perchè ... vedi altro post :rollo: )

    Pero, per eliminare un ListItem con il metodo RemoveByKey credo ....e dico credo .... tu debba aggiungerli al listview in questo modo
    codice:
    Lst.Items.Add(New ListViewItem With {.Name = Entry.ToString(), .Text = Entry.ToString()})
    In modo da assegnare al valore Name lo stesso valore di Text ..... negli overloads del metodo Add non ho trovato una firma che permettesse di farlo se non includendo altri valori che forse a te non servono.
    A proposito .... sei sicuro che il listview sia il controllo giusto per quello che hai necessità di fare???


    Facci sapere....
    Ciao

  7. #7
    Utente di HTML.it L'avatar di calas
    Registrato dal
    Jul 2008
    Messaggi
    23
    Originariamente inviato da Jeremy75
    Prova ad usare Lst.Items.RemoveByKey(Entry.ToString()) oppure
    RemoveAt(Index) se conosci l'indice della chiave da eliminare .... dove Lst è il nome della tua listview(lo specifico perchè ... vedi altro post :rollo: )

    Pero, per eliminare un ListItem con il metodo RemoveByKey credo ....e dico credo .... tu debba aggiungerli al listview in questo modo
    codice:
    Lst.Items.Add(New ListViewItem With {.Name = Entry.ToString(), .Text = Entry.ToString()})
    In modo da assegnare al valore Name lo stesso valore di Text ..... negli overloads del metodo Add non ho trovato una firma che permettesse di farlo se non includendo altri valori che forse a te non servono.
    A proposito .... sei sicuro che il listview sia il controllo giusto per quello che hai necessità di fare???


    Facci sapere....
    Ciao
    Grazie per la risposta ...proverò il codice che mi hai suggerito in questi giorni ...(ad oggi ancora non ho avuto un momento! ) ....
    A proposito .... sei sicuro che il listview sia il controllo giusto per quello che hai necessità di fare???
    Se dici così mi fai venire i dibbi :master: ...ho scelto la listview solo perchè credevo fosse + indicata visto le proprietà addItem ...ma sono sicuro che se mi dici così avrai qualche indicazione di sicuro + calzante! ...cosa hai in mente?

  8. #8
    Se dici così mi fai venire i dibbi ...ho scelto la listview solo perchè credevo fosse + indicata visto le proprietà addItem ...ma sono sicuro che se mi dici così avrai qualche indicazione di sicuro + calzante! ...cosa hai in mente?
    Ciao calas.
    Facevo per dire ..... dipende dallo scenario in cui ti trovi .... pensavo ad un datagrid(visto che mi sembra ne avessi fatto cenno tu in un altro post) ..... ma dipende da cosa devi farne poi di questi dati.

    Ciao.

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 © 2020 vBulletin Solutions, Inc. All rights reserved.