Newsgroup: it.comp.lang.visual-basic
Titolo: Spostare in alto una riga e il suo tag di una listview

Io ho una ListView i cui dati vengono inseriti in questo modo da un
controllo FileListBox:
--------------------START CODE------------------------------------
'Aggiunge un nuovo record nel ListView1
    Set lvItem = ListView1.ListItems.Add()
    lvItem.Text = FileListBox1.List(FileListBox1.ListIndex)
    lvItem.SubItems(1) = frmMain.lblDurata.Caption
'Salvo il path+nomefile nel tag di ciascuna riga della ListView
    ListView1.ListItems.Item(ListView1.ListItems.Count).Tag =
frmMain.Dir1.Path & "\" &     FileListBox1.List(FileListBox1.ListIndex)
--------------------END CODE------------------------------------
Come vedete nel tag di ogni riga inserisco il path del file mentre nel
text solo il nome del file.
Ora ho una funzione che mi permette di spostare in alto (o in basso) una
riga ma devo mantenere anche il tag di ciascuna riga spostata. Come faccio
a spostare il tag senza perdermelo ???
Ho tentato qualcosa ma non mi funziona!!!
Se qualcuno ha qualche idea....grazie in anticipo...
--------------------START CODE------------------------------------
'Altrimenti da errore se la lista è vuota è clicco sul tasto "Sposta in
alto"
If ListView1.ListItems.Count > 0 Then
    If ListView1.SelectedItem.Index = 1 Then
        Set ListView1.DropHighlight = ListView1.SelectedItem
    Else
        If ListView1.SelectedItem.Index = ListView1.ListItems.Count Then
            Set itmx =
ListView1.ListItems.Add(ListView1.SelectedItem.Index - 1, ,
ListView1.SelectedItem.Text)
                itmx.SubItems(1) = ListView1.SelectedItem.SubItems(1)
 
                ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
            Set ListView1.SelectedItem =
ListView1.ListItems(ListView1.SelectedItem.Index - 1)
            Set ListView1.DropHighlight = ListView1.SelectedItem
        Else
            Set itmx =
ListView1.ListItems.Add(ListView1.SelectedItem.Index - 1, ,
ListView1.SelectedItem.Text)
                itmx.SubItems(1) = ListView1.SelectedItem.SubItems(1)
 
                ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
            Set ListView1.SelectedItem =
ListView1.ListItems(ListView1.SelectedItem.Index - 2)
            Set ListView1.DropHighlight = ListView1.SelectedItem
        End If
    End If
End If
--------------------END CODE------------------------------------
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 'Altrimenti da errore se la lista č vuota č clicco sul tasto "Sposta in


controllo FileListBox:
C'e' una cosa che continuo a non capire: perche' tanta gente si fa un
culo cosi' ad usare le listview quando le griglie sono cosi' semplici
da usare?
-- 
ciao, hal

*Antonio* ha scritto:
Senza entrare nel merito della logica, prova cosě:
(mi sono limitato, dopo aver fatto non poca fatica a riprodurre e cercare di
capire il tutto, a salvare e ripristinare la Tag, vedi salva_tag):
    If ListView1.ListItems.Count > 0 Then
        If ListView1.SelectedItem.Index = 1 Then
            Set ListView1.DropHighlight = ListView1.SelectedItem
        Else
            salva_tag = ListView1.SelectedItem.Tag
            If ListView1.SelectedItem.Index = ListView1.ListItems.Count Then
                Set itmx =
ListView1.ListItems.Add(ListView1.SelectedItem.Index - 1, ,
ListView1.SelectedItem.Text)
                itmx.SubItems(1) = ListView1.SelectedItem.SubItems(1)
                ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
                Set ListView1.SelectedItem =
ListView1.ListItems(ListView1.SelectedItem.Index - 1)
                Set ListView1.DropHighlight = ListView1.SelectedItem
            Else
                Set itmx =
ListView1.ListItems.Add(ListView1.SelectedItem.Index - 1, ,
ListView1.SelectedItem.Text)
                itmx.SubItems(1) = ListView1.SelectedItem.SubItems(1)
                ListView1.ListItems.Remove (ListView1.SelectedItem.Index)
                Set ListView1.SelectedItem =
ListView1.ListItems(ListView1.SelectedItem.Index - 2)
                Set ListView1.DropHighlight = ListView1.SelectedItem
            End If
            ListView1.SelectedItem.Tag = salva_tag
        End If
    End If