sabato 9 febbraio 2019

VB.Net listbox spostare gli elementi in alto e basso

In questo esempio di codice, vedremo come tramite  linguaggio VB.Net possiamo spostare gli elementi presenti in un controllo Listbox, in alto o basso, tramite due pulsanti.
Supponiamo di avere una listbox con due pulsanti, uno che permette di spostare in alto e l'altro per spostare l'elemento selezionato in basso.

Qui di seguito la funzione per spostare gli elementi, da richiamare nei vari pulsanti.


 Public Sub MoveItem(ByVal direction As Integer)
        'Verifica la selezione dell'elemento
        If ((lstLista.SelectedItem Is Nothing) _
                    OrElse (lstLista.SelectedIndex < 0)) Then
            Return
        End If

        'Imposta la nuova posizione
        Dim newIndex As Integer = (lstLista.SelectedIndex + direction)
        'Verifico se  è il primo o l'ultimo
        If ((newIndex < 0) _
                    OrElse (newIndex >= lstLista.Items.Count)) Then
            Return
        End If

        Dim selected As Object = lstLista.SelectedItem
        'rimuovo l'elemento per aggiungerlo
        lstLista.Items.Remove(selected)
        'inserisco l'elemento nella nuova posizione
        lstLista.Items.Insert(newIndex, selected)
        'posiziono la selezione
        lstLista.SetSelected(newIndex, True)
    End Sub

Mentre il frammento qui di seguito, permette di spostare l'elemento selezionato in alto.

Private Sub btnsu_Click(sender As Object, e As EventArgs) Handles btnsu.Click
        If (lstLista.SelectedItems.Count > 0) Then
            MoveItem(-1)
        End If
    End Sub

Mentre qui di seguito il codice per l'evento click del pulsante che sposta in basso l'elemento selezionato.

 Private Sub btngiu_Click(sender As Object, e As EventArgs) Handles btngiu.Click
        If (lstLista.SelectedItems.Count > 0) Then
            MoveItem(1)
        End If
    End Sub

Nessun commento: