Listbox - przycisk dalej, wstecz


(Przemek89k) #1

Hej,

mam dodanego listboxa i wpisane w nim źródło danych w następujący sposób :

public IListSource znajdz_uwagi(int id)

        {

            var uwagi = from uwaga in baza.Uwagi where uwaga.idpracownik == id select uwaga;

            if (uwagi.Any()) {

                IListSource lista;

                lista = uwagi.CopyToDataTable();

                return lista;

            }

            else return null;

        }

Samego listboxa i tej funkcji powyżej używam następująco :

lista_uwag.ItemsSource = operacje_na_bazie.znajdz_uwagi(Convert.ToInt32(identyfikator.Content)).GetList();

W nawiasach podaje identyfikator osoby .... zresztą to chyba mało ważne. Chodzi mi o to, że listbox dostaje źródło danych w ten sposób co powyżej i w momencie gdy go wyświetlam wszystko jest ok. Tylko chciałbym dodać 2 buttony (strzałki) - tak aby użytkownik na ekranie widział tylko 1 obiekt listboxa (item) i gdy kliknie strzałkę w prawo zobaczy następny, w lewo poprzedni itp... jak takie coś zrobić ?

Aktualnie mam widoczne suwaki i wszystkie obiekty od razu może user zobaczyć, ja chciałbym zrobić tak aby widział 1 obiekt i w momencie gdy kliknie przyciski -> <- to pojawi się kolejny element listy....

Próbowałem to robić selectindex, ale on tylko zaznacza element i widok na niego się nie zmienia ....

Może istnieje możliwość aby suwak się przesunął na element, który chce zobaczyć ....? Jak to zrobić?

Może jakieś pomysły - podpowiedzi - kod ??


(Frankfurterium) #2

Może nie potrzeba ci ListBoxa, tylko zwykły label albo inne pole tekstowe wyświetlające pojedyncze pole listy + dwa przyciski sterujące iteratorem?

Tak na szybko, bez dbania o formę:

public partial class Form1 : Form

    {

        List list;

        int iterator;

        public Form1()

        {

            InitializeComponent();


            list = new List();

            String[] s = { "Ala ", "ma ", "kota. ", "Kot ", "ma ", "Ale." };

            list.AddRange(s);


            iterator = 0;

            label1.Text = list[iterator];

        }


        private void buttonPlus_Click(object sender, EventArgs e)

        {

            if (iterator < list.Count - 1)

            {

                iterator++;

                label1.Text = list[iterator];

            }

        }


        private void buttonMinus_Click(object sender, EventArgs e)

        {

            if (iterator > 0)

            {

                iterator--;

                label1.Text = list[iterator];

            }

        }

    }