Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: MegaCR en 19 Octubre 2022, 08:26 am



Título: Listview ordenar items con arrastrar y soltar (vb.net)
Publicado por: MegaCR en 19 Octubre 2022, 08:26 am
Listview ordenar items con arrastrar y soltar (vb.net)

Busqué por horas un código en vb.net que me ayudara con algo que pensé sería fácil, acomodar los items de un listview con el mouse, pero por más que busque no logre encontrar algo que fuera lo suficientemente funcional, por esto me di a la tarea de publicar el código que logre hacer y que si funciona sin errores y además dejare el link con el código fuente.

https://mega.nz/folder/ntIA2BLB#PYJpHEN_bYWsv5XZ95SyUQ (https://mega.nz/folder/ntIA2BLB#PYJpHEN_bYWsv5XZ95SyUQ)

(https://gfycat.com/spectaculargratefulfieldspaniel)

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Listview1.FullRowSelect = True
        Listview1.View = View.Details
        ListView1.MultiSelect = False
        ListView1.AllowDrop = True 'Importante este true

        For i = 1 To 5
            With ListView1
                .Font = New Font(New FontFamily("Arial Narrow"), 14, FontStyle.Regular)
                With .Columns.Add("Columna " & i)
                    .Width = 180
                End With

                With .Items.Add("Item " & i)
                    .SubItems.Add("Item " & i & " SubItem 1")
                    .SubItems.Add("Item " & i & " SubItem 2")
                    .SubItems.Add("Item " & i & " SubItem 3")
                    .SubItems.Add("Item " & i & " SubItem 4")
                End With
            End With
        Next
    End Sub

    Private Sub ListView1_ItemDrag(sender As Object, e As ItemDragEventArgs) Handles ListView1.ItemDrag
        ListView1.DoDragDrop(ListView1.SelectedItems, DragDropEffects.Move)
        ListView1.Items.Remove(e.Item)
    End Sub

    Private Sub ListView1_DragEnter(sender As Object, e As DragEventArgs) Handles ListView1.DragEnter
        e.Effect = DragDropEffects.Move
    End Sub

    Private Sub ListView1_DragDrop(sender As Object, e As DragEventArgs) Handles ListView1.DragDrop
        Dim pt As Point = ListView1.PointToClient(Cursor.Position)
        Dim hit As ListViewHitTestInfo = ListView1.HitTest(pt)
        Dim sel As Windows.Forms.ListView.SelectedListViewItemCollection
        sel = e.Data.GetData(GetType(Windows.Forms.ListView.SelectedListViewItemCollection))
        If hit.Item Is Nothing Then
            For Each lvi As ListViewItem In sel
                ListView1.Items.Add(lvi.Clone)
            Next
        Else
            For Each lvi As ListViewItem In sel
                ListView1.Items.Insert(hit.Item.Index, lvi.Clone)
            Next
        End If
    End Sub
End Class


Título: Re: Listview ordenar items con arrastrar y soltar (vb.net)
Publicado por: richardu1980 en 23 Noviembre 2022, 19:35 pm
Consulta:
es posible pasar al siguiente item del ListView o seleccionar el primer item ??? necesito ese codigo GRACIAS!!!