Continuam seria articolelor dedicata celor mai uzuale controale din .Net Compact Framework prin descrierea ComboBox, ListView, DateTimePicker.
Combobox
Acest control este ideal pentru listarea mai multor optiuni/alegeri intr-un spatiu restrans al ecranului. Initial, el se aseamana cu un textbox, dar atunci cand utilizatorul interactioneaza prin apasarea sagetii, va fi afisa lista optiunilor continuta in combobox. Dupa selectarea unei inregistrari, lista optiunilor va fi restransa din nou.
Adaugarea elementelor pentru acest control poate fi facuta atat la “design time” cat si la “runtime”.
La “design time”, selectam controlul iar in fereastra Properties cautam Items.
Se va deschide fereastra String Collection Editor in care se vor adauga elemente, fiecare element trebuind scris pe o singura linie.
Adaugarea elementelor la runtime poate fi facuta in doua moduri:
1) Prin apelul metodei Add:
//adaugam elemente comboBox1.Items.Add("Windows Mobile 6.5"); comboBox1.Items.Add(4); comboBox1.Items.Add(3.4); comboBox1.Items.Add('a');
Un element poate fi sters prin apelul metodei Remove :
// sterge un element de la o anumita pozitie comboBox1.Items.RemoveAt(0); // Sterge elementul "Windows Mobile 6.5" comboBox1.Items.Remove("Windows Mobile 6.5");
Toate elementele pot fi sterse cu ajutorul metotdei Clear.
//sunt eliminate toate elementele
comboBox1.Items.Clear();
Exista si proprietatea Count, care indica numarul elementelor existente.
2) Prin binding (“legarea”) la o colectie de obiecte.
Vom folosi clasa folosita in exemplul Databinding in C#, caruia ii vom modifica doar modul in care facem rescrierea functiei toString si anume vom returna doar proprietatea fname.
//rescriem functia public override string ToString() { return string.Format("{0}", FirstName); }
Vom crea o lista de obiecte de tip Person si ii vom adauga elemente:
//cream lista var list = new List<Person>(); //adaugam elemente listei list.Add(new Person ("Popescu","Paul",24)); list.Add(new Person("Georgescu", "George", 25)); list.Add(new Person("Ionescu", "Ion", 26));
Aceasta lista o vom folosi ca sursa de date pentru controlul nostru combobox:
comboBox1.DataSource = list;
Evenimentul care se declanseaza atunci cand se selecteaza elementele controlului se numeste SelectedIndexChanged:
//se trateaza evenimentul comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged; //metoda care va trata evenimentul de schimbare al elementului void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { MessageBox.Show("Elementul " + comboBox1.SelectedItem + " a fost selectat!"); }
Proprietatea SelectedItem returneaza elementul curent selectat.
ListView
Spre deosebire de CombBox care este ideal atunci cand suntem constransi de spatiul dedicat interfetei, ListView se poate folosi atunci cand exista suficient spatiu pentru a afisa mai multe optiuni disponibile utilizatorului dintr-o data.
La fel ca in cazul controlului ComboBox, se pot adauga elemente din momentul “design-time”.
Modul in care este afisat controlul este dat de valorile din enumerarea View (LargeIcon, SmallIcon, List, Details). Valoarea implicita este LargeIcon.
//elementele liste vor fi atasate in modul Details
listView1.View = View.Details;
Acestui control ii pot fi adaugate coloane. Este important de stiu ca doar in vizualizarea Details urmatoarea linie de cod are efect:
//seteaza vizualizarea Details listView1.View = View.Details; //adauga o coloana listView1.Columns.Add("Autor", 100, HorizontalAlignment.Left);
De asemenea, se pot adauga si la “design-time” prin intermediul ferestrei Properties.
O proprietate utila este Checkboxes care setata pe true va adauga fiecarui element din lista un control Checkbox pentru selectare/deselectare.
listView1.CheckBoxes = true;
Evenimentul care apare la schimbarea unui element selectat din lista se numeste SelectedIndexChanged.
DateTimePicker
.Net Compact Framework suporta clasa DateTimePicker, cu anumite restrictii. De exemplu, controlul nu are un selector “up-down” pentru selectarea datelor in cazul unui Smartphone, iar acestea vor fi selectate cu ajutorul cheilor de navigare.
Proprietatile MinDateTime/MaxDateTime vor defini data minima/maxima si timpul care poate fi selectata in control:
// MinDate dateTimePicker1.MinDate = new DateTime(1986, 1, 1); //MaxDate dateTimePicker1.MaxDate = new DateTime(1986, 1, 10);
Proprietatea Format ccontine toate valorile din enumerarea DateTimePickerFormat si va afisa data conform acestora.
//formatul short
dateTimePicker1.Format = DateTimePickerFormat.Short;
Pentru a construi o formatare particularizata pentru data, putem proceda astfel:
// formatarea particularizata cu ajutorul unui string dateTimePicker1.CustomFormat = "MMMM dd, yyyy - dddd"; dateTimePicker1.Format = DateTimePickerFormat.Custom;
Proprietatea Value va returna data continuta de control, iar acestui rezultat ii putem adauga multe alte metode si proprietati legate de adaugarea/scaderea altor perioade de timp, formatarea datei, etc.
//adauga 2 ani la data curenta //va afisa doar anul MessageBox.Show(dateTimePicker1.Value.AddYears(2).Year.ToString());
Evenimentul de ValueChanged va fi executat cand utilizatorul va schimba valoarea datei:
dateTimePicker1.ValueChanged += dateTimePicker1_ValueChanged; void dateTimePicker1_ValueChanged(object sender, EventArgs e) { MessageBox.Show("Noua data este " + dateTimePicker1.Value.ToShortDateString() + " !"); }
Cu ajutorul controalelor din .Net Compact Framework, care sunt foarte usor de folosit, intuitive si usor de particularizat, dezvoltatorul poate construi rapid o interfata grafica pentru utilizator.
In urmatorul articol, printre altele, vom descrie si controale MainMenu, Panel, LinkLabel.