Soyez le premier à donner votre avis sur cette source.
Snippet vu 5 875 fois - Téléchargée 20 fois
Private Sub MoveDownItem(ByRef List As ListView) Dim i, j As Integer Dim Cache As String Dim SelIdx As Integer Dim LstCount As Integer = List.SelectedItems.Count - 1 Dim rSelIdx(LstCount, 0) As String i = LstCount 'On récupère tous les id dans un tableau pour les traités dans l'ordre inverse (du dernier au premier) For Each SelItem As ListViewItem In List.SelectedItems rSelIdx(i, 0) = CStr(CInt(SelItem.Index)) i -= 1 Next For j = 0 To LstCount SelIdx = CInt(rSelIdx(j, 0)) 'Si on ne sait pas/plus le descendre on s'arrête If SelIdx = List.Items.Count - 1 Then List.Refresh() List.Focus() Exit Sub End If 'On inverse l'item/le subitem du dessous par celui du dessus For i = 0 To List.Items(SelIdx).SubItems.Count - 1 Cache = List.Items(SelIdx + 1).SubItems(i).Text List.Items(SelIdx + 1).SubItems(i).Text = List.Items(SelIdx).SubItems(i).Text List.Items(SelIdx).SubItems(i).Text = Cache Next 'On inverse la sélection List.Items(SelIdx + 1).Selected = True List.Items(SelIdx).Selected = False Next List.Refresh() List.Focus() End Sub Private Sub MoveUpItem(ByRef List As ListView) Dim i As Integer Dim Cache As String Dim SelIdx As Integer 'On traite tous les items sélectionné For Each SelItem As ListViewItem In List.SelectedItems 'On récupère l'id de l'item en cours de traitement SelIdx = SelItem.Index 'Si on ne sait pas/plus le monter on s'arrête If SelIdx = 0 Then List.Refresh() List.Focus() Exit Sub End If 'On inverse l'item/le subitem du dessus par celui du dessous For i = 0 To List.Items(SelIdx).SubItems.Count - 1 Cache = List.Items(SelIdx - 1).SubItems(i).Text List.Items(SelIdx - 1).SubItems(i).Text = List.Items(SelIdx).SubItems(i).Text List.Items(SelIdx).SubItems(i).Text = Cache Next 'On inverse la sélection List.Items(SelIdx - 1).Selected = True List.Items(SelIdx).Selected = False Next 'On refresh et on rend le focus List.Refresh() List.Focus() End Sub Private Sub MoveTopItem(ByRef List As ListView) Dim i As Integer Dim Cache As String Dim SelIdx As Integer Dim TopDiff As Integer = List.SelectedItems(0).Index Dim k As Integer = 1 'On traite tous les items sélectionné For Each SelItem As ListViewItem In List.SelectedItems 'On récupère l'id de l'item en cours de traitement SelIdx = SelItem.Index 'Si on ne sait pas/plus le monter on s'arrête If SelIdx = 0 Then List.Refresh() List.Focus() Exit Sub End If k += 1 'On inverse l'item/le subitem du dessus par celui du dessous For i = 0 To List.Items(SelIdx).SubItems.Count - 1 Cache = List.Items(SelIdx - TopDiff).SubItems(i).Text List.Items(SelIdx - TopDiff).SubItems(i).Text = List.Items(SelIdx).SubItems(i).Text 'On descend tous les items au-dessus de l'item en cours de traitement For j As Integer = SelIdx To k Step -1 List.Items(j).SubItems(i).Text = List.Items(j - 1).SubItems(i).Text Next List.Items(SelIdx - TopDiff + 1).SubItems(i).Text = Cache Next 'On inverse la sélection List.Items(SelIdx - TopDiff).Selected = True List.Items(SelIdx).Selected = False Next List.Refresh() List.Focus() End Sub Private Sub MoveBottomItem(ByRef List As ListView) Dim i, j As Integer Dim Cache As String Dim SelIdx As Integer Dim LstCount As Integer = List.Items.Count Dim LstSelCount As Integer = List.SelectedItems.Count - 1 Dim rSelIdx(LstSelCount, 0) As String Dim BottDiff As Integer = List.SelectedItems(List.SelectedItems.Count - 1).Index Dim k As Integer = 0 i = LstSelCount 'On récupère tous les id dans un tableau pour les traités dans l'ordre inverse (du dernier au premier) For Each SelItem As ListViewItem In List.SelectedItems rSelIdx(i, 0) = CStr(CInt(SelItem.Index)) i -= 1 Next For j = 0 To LstSelCount SelIdx = CInt(rSelIdx(j, 0)) 'Si on ne sait pas/plus le descendre on s'arrête If SelIdx = List.Items.Count - 1 Then List.Refresh() List.Focus() Exit Sub End If k += 1 'On inverse l'item/le subitem du dessous par celui du dessus For i = 0 To List.Items(SelIdx).SubItems.Count - 1 Cache = List.Items(LstCount - k).SubItems(i).Text List.Items(LstCount - k).SubItems(i).Text = List.Items(SelIdx).SubItems(i).Text 'On remonte tous les items en dessous de l'item en cours de traitement For l As Integer = SelIdx To LstCount - (k + 1) List.Items(l).SubItems(i).Text = List.Items(l + 1).SubItems(i).Text Next List.Items(LstCount - (k + 1)).SubItems(i).Text = Cache Next 'On inverse la sélection List.Items(List.Items.Count - k).Selected = True List.Items(SelIdx).Selected = False Next List.Refresh() List.Focus() End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.