Moure elements d'un listview

Aquest és un senzill, però molt poc vist, exemple de com podem fer en visual basic. Net per moure (mitjançant codi) els elements d'un listview.

Necessitarem un formulari amb un listview i dos botons:

Ara, omplirem el listview amb algunes dades per l'exemple i ho farem en l'esdeveniment Load del mateix:

 ListView1.Items.Add ("Carles")
 ListView1.Items.Add ("Marcelo")
 ListView1.Items.Add ("Damian")
 ListView1.Items.Add ("Susana")
 ListView1.Items.Add ("Gerardo")
 ListView1.Items.Add ("Claudia")
 ListView1.Items.Add ("Marta")
 ListView1.Items.Add ("Liliana")
 ListView1.Items.Add ("Eliseo")
 ListView1.Items.Add ("Agustin")
 ListView1.Items.Add ("Camila")
 ListView1.Items.Add ("Lluc")
 ListView1.Items.Add ("Jorge")
 ListView1.Items.Add ("Mabel")
 ListView1.Items.Add ("Natalia")
 ListView1.Items.Add ("Gabriela")
 ListView1.Items.Add ("Paula")
 ListView1.Items.Add ("Matias")
 ListView1.Items.Add ("Martin")
 ListView1.Items.Add ("Joan")
 ListView1.Items.Add ("Maria")
 ListView1.Items.Add ("Abel")
 ListView1.Items.Add ("Pedro")

ListView1.FullRowSelect = True
ListView1.MultiSelect = False

ListView1.HideSelection = False

Notese que també hem establert tres propietats molt importants: FullRowSelect = True perquè en seleccionar un ítem es marqui tota la fila, multiselect = False perquè només es pugui seleccionar d'a un ítem i HideSelection = False perquè sempre veiem que item està seleccionat .

Després en l'esdeveniment clic del botó PUJAR:

 If ListView1.SelectedIndices.Count> 0 Then
 Try
 Dim temporal As String
 temporal = ListView1.Items (ListView1.FocusedItem.Index - 1). Text

 ListView1.Items (ListView1.FocusedItem.Index - 1). Text = ListView1.FocusedItem.Text
 ListView1.FocusedItem.Text = temporal

 ListView1.Items.Item (ListView1.FocusedItem.Index - 1). Select = True
 ListView1.Items.Item (ListView1.FocusedItem.Index - 1). Focused = True

 Catch ex As Exception
 Beep ()
 End Try
 Else
 Msgbox ("Ha de seleccionar un ítem de la llista.")
 End If

i en l'esdeveniment clic del botó BAIXAR:

 If ListView1.SelectedIndices.Count> 0 Then
 Try
 Dim temporal As String
 temporal = ListView1.Items (ListView1.FocusedItem.Index + 1). Text </ code>

 ListView1.Items (ListView1.FocusedItem.Index + 1). Text = ListView1.FocusedItem.Text
 ListView1.FocusedItem.Text = temporal

 ListView1.Items.Item (ListView1.FocusedItem.Index + 1). Select = True
 ListView1.Items.Item (ListView1.FocusedItem.Index + 1). Focused = True

 Catch ex As Exception
 Beep ()
 End Try
 Else
 Msgbox ("Ha de seleccionar un ítem de la llista.")
 End If

Això és tot, poden executar el programa i provar com funciona. Els deixo una captura del progrma en funcionament:

Espero que, com a mi, els sigui molt útil.

10 Responses to "Moure elements d'un listview"

  1. Informació Bitacoras.com ...

    Valora en Bitacoras.com: Aquest és un senzill, però molt poc vist, exemple de com podem fer en visual basic. Net per moure (mitjançant codi) els elements d'un listview. Necessitarem un formulari amb un listview i dos botons: Ara, omplire ....

  2. Cristian diu:

    Just el que necessitava, per al meu projecte sobre pocket pc. Mil gràcies.

  3. D. Calix diu:

    Hey! aquesta bonissim teva pàgina, de veritat que si. gràcies per compartir el teu coneixement amb nosaltres ...
    Felicitats ... Esperem Mas

  4. Joseph diu:

    hey gràcies x aquesta informació no se si tens potser algun codi similar però passar els elements d'un ListBox a un altre ListBox diferent?
    des de ja moltes gràcies!

  5. Jhonny nina Veizaga diu:

    moltes gràcies, la veritat ho estic fent servir en un projecte de gran magnitud on es precisa usar molt el component ListView.

  6. Marina diu:

    hola volia saber com faig passar les dades que tinc en un listview a diversos texbox
    això jo ho faig des d'un form client on amb una cerca porto les dades que he de posar en els texbox.
    salutacions

  7. mery diu:

    no reconeix el ... (gt)

    • Eliseu diu:

      Hola el gt correspon a un codi HTML per el signe més (>), es veu que en migrar al nou servidor aquest valor es va canviar.
      Ja està corregit, tornin a revisar el codi original ...
      Eliseo

  8. Grobles diu:

    Mery en relacio a la línia que conté el gt la pots substituir per la següent:

    If ListView1.SelectedIndices.Count 0 Then

  9. Grobles diu:

    If ListView1.SelectedIndices.Count 0 Then

    en l'anterior no em apareixen els signes de diferent de () abans del 0 (zero)

Comentar