Aggiornare un Item di una listview

di il
11 risposte

Aggiornare un Item di una listview

Ciao a tutti...

Ho fatto delle ricerche ma non sono riuscito a trovare quello che mi interessa...

Ho una listview con vari record (o items).

Ho impostato il programma che facendo doppio click sull'item, questo mi si copia i una textbox, inseme a tutte i sub nei corrispettivi textbox, in un riquadro ove sia possibile apportare modifiche all'item stesso.
C'è un pulsante chiamato "Aggiungi", che permette l'inserimento dei dati da quei textbox in questa listview.
Solo che non mi va di ri-aggiungere lo stesso item modificato...
c'è un modo per dire al programma che, attraverso il pulsante "modifica" mi "sovrascrive" l'item selezionato con i testi dello stesso ma modificati?
Cerco di essere più chiaro.... immaginate una rubrica telefonica realizzata con la listview.
Se un amico cambia il numero di telefono... a me interessa correggere solo quello.... quindi... con un doppio click reinserisco i suoi dati, correggo il numero, e cliccando su "Modifica" mi deve sovrascrivere l'item in questione.
Come posso indicare al programma che invece di aggiungerlo l'item... me lo deve sovrascrivere?

Grazie a tutti.

11 Risposte

  • Re: Aggiornare un Item di una listview

    La modifica di un item è prevista ... basta lavorare sulla riga selezionata.

    Come fai a leggere la riga della listview nelle text?
  • Re: Aggiornare un Item di una listview

    In questo modo...

    associato all'evento doppio click ci sono queste istruzioni:

    TextBox1.Text = ListViewScaduti.SelectedItems(0).Text
    DateTimePicker1.Text = ListViewScaduti.SelectedItems(0).SubItems(1).Text
    ComboBox1.Text = ListViewScaduti.SelectedItems(0).SubItems(2).Text

    in questo modo, i dati della listview nelle 3 colonne, si inseriscono nuovamente nei controlli da cui sono stati "generati".
    Sotto quei controllo ci sono ora dei pulsanti, Aggiungi, Elimina e Modifica.
    I primi 2 sono apposto... ma non riesco a risolvere quanto detto prima in caso di "modifica".
    Al momento inserisco di nuovo lo stesso item e cancello poi quello vecchio... ma... da come mi hai appena confermato... perche fare 3 passaggi se posso ottenere lo stesso risultato con solo 1?
  • Re: Aggiornare un Item di una listview

    Quando effettui la modifica, con il click di un pulsante, valorizza quello che ti serve, ad esempio

    ListViewScaduti.SelectedItems(0).Text = TextBox1.Text
  • Re: Aggiornare un Item di una listview

    E se le listview da dove estrapolo i dati... fossero più di una? o meglio... se il pulsante modifica dovesse operare su più list?... perche di list ne avrei 4... su tutte e 4 è impostato il doppio click... e la modifica dovrei poterla ottenere sulla list al momento interessata.
    Inserendo il nome ListViewScaduti, significa che il comando è riferito a solo quella lista... e mi ignorerebbe li altre...
    Ho provato in questo modo ma mi da errore....
    
    If ListViewPiano1.SelectedItems(0).Selected = True Then
    	ListViewPiano1.SelectedItems(0).Text = TextBox1.Text
    	ListViewPiano1.SelectedItems(0).SubItems(1).Text = DateTimePicker1.Text
    	TextBox1.Text = ""
    	ComboBox1.Text = ""
    	Exit Sub
    End If
    If ListViewPiano2.SelectedItems(0).Selected = True Then
    	ListViewPiano2.SelectedItems(0).Text = TextBox1.Text
    	ListViewPiano2.SelectedItems(0).SubItems(1).Text = DateTimePicker1.Text
    	TextBox1.Text = ""
    	ComboBox1.Text = ""
    	Exit Sub
    End If
    
  • Re: Aggiornare un Item di una listview

    Questa è un'altra storia... La risposta che ti ho dato era per la domanda che avevi fatto.

    Adesso non so come sono organizzate queste 4 listview ... dovresti dare maggiori dettagli senza omettere nulla perché altrimenti è inutile rispondere...
  • Re: Aggiornare un Item di una listview

    e444 ha scritto:


    e se le listview da dove estrapolo i dati... fossero più di una? o meglio... se il pulsante modifica dovesse operare su più list?... perche di list ne avrei 4... su tutte e 4 è impostato il doppio click... e la modifica dovrei poterla ottenere sulla list al momento interessata.
    Quando fai doppio clic memorizza sia l'oggetto listview corrente che l'item selezionato in variabili oggetto (visibili a livello di form, ovviamente).

    Così quando confermi la modifica sai su quali oggetti devi applicarla.
  • Re: Aggiornare un Item di una listview

    oregon ha scritto:


    Questa è un'altra storia... La risposta che ti ho dato era per la domanda che avevi fatto.

    Adesso non so come sono organizzate queste 4 listview ... dovresti dare maggiori dettagli senza omettere nulla perché altrimenti è inutile rispondere...
    Bè ma la tua risposta mi ha comunque sia svelato un'altro quesito... non è stata vana...

    gibra ha scritto:


    e444 ha scritto:


    e se le listview da dove estrapolo i dati... fossero più di una? o meglio... se il pulsante modifica dovesse operare su più list?... perche di list ne avrei 4... su tutte e 4 è impostato il doppio click... e la modifica dovrei poterla ottenere sulla list al momento interessata.
    Quando fai doppio clic memorizza sia l'oggetto listview corrente che l'item selezionato in variabili oggetto (visibili a livello di form, ovviamente).

    Così quando confermi la modifica sai su quali oggetti devi applicarla.
    Ecco vedi?.... questa era un'opzione a cui non avevo pensato!... vedi l'esperienza vuol dire tanto....

    Quindi, in parole povere, mi stai suggerendo di creare una variabile che, al momento del doppio click, si aggiorna di volta in volta in base a dov'è stato fatto il doppio click... mmmm.... ok... vediamo se riesco... perche ok l'idea... ma tra il dire e il fare... PER ME!....
    Ora provo e vi dico....
  • Re: Aggiornare un Item di una listview

    Si ma... come specifico la ListView di origine nella variabile?...

    va bene una cosa del tipo:

    Dim Mittente As String 'ListView dove è stato selezionato l'item da modificare
    Dim ItemNome As String
    Dim ItemData As String

    Evento doppio click su Item della ListView Interessata
    Mittente = ListViewPiano1.SelectedItems(0).Selected
    ItemNome = ListViewPiano1.Items(0).Text
    ItemData = ListViewPiano1.Items(0).SubItems(1).Text

    Evento Click sul pulsante modifica

    ItemNome = TextBox1.Text
    ItemData = DateTimePicker.Text

    è corretto?...
    solo che a bruciapelo... mi chiedo... serve la variabile "Mittente"?...
  • Re: Aggiornare un Item di una listview

    Io ho scritto di variabili oggetto, non di variabili String.

    - Il Listview è un oggetto o una stringa?
    - l'Item (del listview) è un oggetto o una stringa ?
  • Re: Aggiornare un Item di una listview

    Gibra, onestamente allora non ho capito il tuo suggerimento...
  • Re: Aggiornare un Item di una listview

    e444 ha scritto:


    Gibra, onestamente allora non ho capito il tuo suggerimento...
    Questo è un forum TECNICO, non è e e non sostituisce la guida alle nozioni di base del linguaggio.

    Come richiesto dal Regolamente, le nozioni di basi sono richieste, non posso mettermi qui a spegarti la differenza tra variabili oggetto e variabili stringa.
    Se non lo sai allora devi andare a documentarti sul libro che stai studiando.

    Sono concetti importantissimi, basilari, indispensabili per chi vuole sviluppare, e senza i quali non si va da nessuna parte (da qui le tue difficoltà nello scrivere codice e, ancor di più, nel capire di ciò che si parla.
    Lo dimostra il fatto che non hai nemmeno risposto alle mie domande.

Devi accedere o registrarti per scrivere nel forum
11 risposte