Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Controale in .Net CE – Partea 2-a

     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.

comboboxControl

     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.

ItemsComboBox

     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.

ListViewControl

     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.

dateTimePickerControl

     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.

Category: Uncategorized

Your email address will not be published. Required fields are marked *

*