Once you reorder the listview items, largeicon or smallicon view will not follow the order of list or detail view which is the correct order. For example with a listview as
lvProdImg.items(0).text="img0"
lvProdImg.items(1).text="img1"
lvProdImg.items(2).text="img2"
lvProdImg.items(3).text="img3"
once it is reordered as
lvProdImg.items(0).text="img2"
lvProdImg.items(1).text="img0"
lvProdImg.items(2).text="img1"
lvProdImg.items(3).text="img3"
the largeicon and smallicon view will be out of order while list and detail view is correct. Here is how i reorder items through drag and drop
Private Sub lvProdImg_ItemDrag(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemDragEventArgs) Handles lvProdImg.ItemDrag
DoDragDrop(e.Item, DragDropEffects.Move)
End Sub
Private Sub lvProdImg_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lvProdImg.DragEnter
e.Effect = DragDropEffects.Move
End Sub
Private Sub lvProdImg_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lvProdImg.DragDrop
Dim lvitem, srcitem As ListViewItem
Dim destlv As ListView = CType(sender, System.Windows.Forms.ListView)
Dim clX, clY As Integer
If e.Data.GetDataPresent("System.Windows.Forms.ListVi ewItem", False) Then
srcitem = CType(e.Data.GetData("System.Windows.Forms.ListVie wItem"), ListViewItem)
clX = destlv.PointToClient(New Point(e.X, e.Y)).X
clY = destlv.PointToClient(New Point(e.X, e.Y)).Y
lvitem = destlv.GetItemAt(clX, clY)
If Not lvitem Is Nothing Then
destlv.Items.Insert(lvitem.Index, srcitem.Clone)
srcitem.Remove()
End If
End If
End Sub