sabato 2 febbraio 2019

C# listbox spostare gli elementi in alto e basso

Il frammento di codice in C# qui di seguito, illustra una tecnica di come spostare gli elementi di un controllo listbox.
Supponiamo di avere una listabox con all'interno dei valori, e due pulsanti, uno per spostare in alto l'elemento e l'altro in basso.

Qui di seguito la funzione per lo spostamento degli elementi:

 public void MoveItem(int direction)
        {
            //Verifica la selezione dell'elemento
            if (lstLista.SelectedItem == null || lstLista.SelectedIndex < 0)
                return; 

            //Imposta la nuova posizione
            int newIndex = lstLista.SelectedIndex + direction;

            //Verifico se è il primo o l'ultimo
            if (newIndex < 0 || newIndex >= lstLista.Items.Count)
                return; 

            object selected = 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);
        }

Mentre qui di seguito il frammento di codice per spostare l'elemento in alto.

 private void btnsu_Click(object sender, EventArgs e)
        {
            if (lstLista.SelectedItems.Count > 0)
            {

                MoveItem(-1);
            }
        }

Mentre qui di seguito il frammento di codice per spostare l'elemento selezionato in basso.

 private void btngiu_Click(object sender, EventArgs e)
        {
            MoveItem(1);
        }

Nessun commento: