joi, 5 mai 2016

C#22 Controalele ListBox și ComboBox

Aceste controale afișează o listă de itemi. Itemii apar sub formă de șiruri de caractere și pot fi selectați cu mousul. Controlul comboBox combină un TextBox cu un ListBox, permițând atât selecția de itemi cât și introducerea de noi itemi.
Controlul ChechedListBox este un listBox care are în plus checkboxuri pentru selectarea itemilor nealăturați.
Itemii se pot adăuga în liste atât la design time cât și la run time.
Aplicația care urmează implementează toate cele trei tipuri de liste și ambele modalități de adaugare a itemilor.

Aplicația TestListBox

Se deschide o aplicație nouă și se aduc pe suprafața formei următoarele controale: un listBox, un comboBox, un checkedListBox și un button pentru Exit. Se aranjează aceste controale unul lângă altul, în linie sau în coloană.
Lângă aceste controale se mai aduc câteva butoane, astfel: lângă listBox și lângă comboBox,  câte un buton, iar lângă checkedListBox două butoane.

Se configurează textul afișat pe aceste butoane, după cum urmează:
butonul alăturat lui listBox: Încarcă ListBox
butonul alăturat lui ComboBox: Incarca comboBox
primul buton de lânga checkedBox; Incarca o lista
al doilea buton de langa checkedBox: Incarca alta lista

Se tratează evenimentele click ale tuturor butoanelor.

Din săgeata mică din marginea superioară a listBox-ului se alege Edit Items. Se introduc 3 siruri de caractere pe 3 linii succesive, de genul

Gogu
Gigi
Guță

Acești itemi sunt prestabiliți la design-time.

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {

        private Elev[] el;

        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)

        {
            listBox1.Items.Add("Gogu"); //adăugare item singur
            listBox1.Items.AddRange(new object[] { "UNU", "DOI", "TREI",  }); //adăugare  multiplă
        }

        private void button2_Click(object sender, EventArgs e)

        {
            //incepand cu apelul BeginUpdate si pana la EndUpdate
            //controlul nu se mai redeseneaza, ceea ce mareste viteza
            comboBox1.BeginUpdate();
            for (int i = 0; i < 20; i++)
                comboBox1.Items.Add("Itemul " + i);
            comboBox1.EndUpdate();
        }

        private void button3_Click(object sender, EventArgs e)

        {
            //un tablou de referinte la obiecte de tip string
            string[] copii = { "Ionel", "Viorel", "Alinel", "Dorel" };
            //sursa de date este tabloul
            this.checkedListBox1.DataSource = copii;
        }

        private void button4_Click(object sender, EventArgs e)

        {
            //cream obiectele care se insereaza in lista
            Elev[] e1 = new Elev[] { new Elev("Marius"), new Elev("Lenuta") };
            //sursa de date este e1
            this.checkedListBox1.DataSource = e1;
            //membrul  clasei Elev care se va afisa in lista
            //este proprietatea Nume
            checkedListBox1.DisplayMember = "Nume";
        }

        private void button5_Click(object sender, EventArgs e)

        {
            Application.Exit();
        }
    }
    class Elev
    {
        private string nume;
        public Elev(string n)
        { nume = n; }
        public string Nume
        { get { return nume; } }
    }
}

Niciun comentariu:

Trimiteți un comentariu