Am observat in articolele precedente ca Visual Studio permite proiectarea interfetei utilizatorului nu doar programatic, ci si vizual, prin “drag and drop” la “design time”. Asezate pe forma, controalelor le pot fi modificate pozitia, proprietatile si putem crea metode care sa fie apelate la evenimentele care indica interactiunea cu utilizatorul.
In acest articol, vom incheia seria articolelor dedicate controalelor in .Net Compact Framework.
Panel
Acest control este folosit ca un container (recipient) pentru alte controale. Este foarte util atunci cand vrem sa generam controale programatic, sa ascunderea/afisarea unui grup de controale, sau pentru gruparea/localizarea acestora.
Controlul Panel are niste proprietati care permit particularizarea modului in care sunt afisate controalele continute si a comportamentului acestora.
Facem drag and drop unui control de tip Panel din Toolbox.
Ii putem seta proprietatea Background pentru a evidentia zona in care se afla controlul Panel.
panel1.BackColor = Color.DimGray;
Creem programatic un Textbox pe care il adaugam in interiorul controlului Panel si ii setam proprietatea Dock.Top care il va pozitiona in partea de sus a controlului Panel.
//creare textbox TextBox t =new TextBox(); //adaugare in Panel panel1.Controls.Add(t); //pozitionare t.Dock = DockStyle.Top;
Mai putem adauga, de exemplu, un alt Textbox, in Panel:
TextBox t2 = new TextBox(); panel1.Controls.Add(t2); t2.Location = new Point(t.Location.X,t.Location.Y+100);
Putem testa daca un control se afla in limitele controlului Panel, astfel:
//compara coordonatele prop Location if (textBox1.Location.X>panel1.Location.X||textBox1.Location.Y>panel1.Location.Y) { //permite scroll panel1.AutoScroll = true; }
Panel poate fi adaugat atat la “design-time” cat si la “run-time”.
Controlul Panel prezinta si el optiunea de Dock. Astfel, in functie de valoarea selectata din enumerarea DockStyle, controlul poate fi asezat Bottom (in partea de jos), Top (in partea de sus), Left (stanga), Right (dreapta), Fill (va ocupa toata suprafata controlului parinte).
panel1.Dock = DockStyle.Left;
Nu sunt prezente optiuni ca BorderStyle, BackGroundImage.
MainMenu
Acest control este folosit la reprezentarea structurii meniului intr-o forma. Este o metoda eficienta pentrnu a prezenta optiunile pe care utilizatorul le are la dispozitie. Meniurile sunt afisate in partea de jos a aplicatie.
El este compus din obiecte de tip MenuItems care reprezinta comenzi individuale in structura meniului. Fiecare MenuItem poate reprezenta o o comanda pentru aplicatie sau un meniu parinte pentru alte submeniuri.
Un meniu pentru o aplicatie se poate construi rapid, astfel:
//crearea obiectelor de tip MenuItem MenuItem menu = new MenuItem(); MenuItem newItem = new MenuItem(); MenuItem sepItem = new MenuItem(); MenuItem editItem = new MenuItem(); MenuItem viewItem = new MenuItem(); //denumirea meniurilor menu.Text = "File"; newItem.Text = "New"; sepItem.Text = "-"; editItem.Text = "Edit"; viewItem.Text = "View"; menu.MenuItems.Add(newItem); menu.MenuItems.Add(sepItem); menu.MenuItems.Add(editItem); menu.MenuItems.Add(viewItem); //adaugarea menuItem-ului la controlul mainMenu mainMenu1.MenuItems.Add(menu);
La apasarea unui meniu are loc evenimentul de Click.
Proprietatea Checked a unui MenuItem face ca pe langa Text sa apara un Checkbox.
newItem.Checked = true;
Pot fi create sub-meniuri in acesi mod, prin folosirea aceluiasi MenuItem.
Timer
Desi acest control este prezentat ultimul din seria dedicata controalelor in .Net Compact Framework, acesta nu este deloc lipsit de importanta. Cu ajutorul lui putem executa cod pentru evenimente care sa se repete intr-un interval definit de timp.
Este util de stiut faptul ca acest cod va fi executat pe acelasi thread pe care va rula si codul Windows. Daca vrem sa schimbam acest lucru, va trebui sa folosim spatiul de nume System.Threading.
Evenimentul Tick –singurul eveniment al controlului- are loc atunci cand proprietatea Enabled este setata true. Intervalul, in milisecunde (1 sec = 1000 milliseconds), va fi stabilit de proprietatea Interval.
//interval 20 sec
timer1.Interval = 20000;
In articole precedente (O animatie elementara sau Despre Compact Framework), am aratat utilitatea controlului Timer.
TreeView
Controlul TreeView permite afisarea datelor intr-o maniera ierarhica (tree data structure). Proprietatea Nodes este, de fapt o colectie de obiecte TreeNode.
Intr-un mod asemantor celui din exemplul MainMenu, putem construi o structura de date ierarhica, astfel:
TreeNode treeRomania = new TreeNode(); TreeNode treeNode2 = new TreeNode(); TreeNode treeNode3 =new TreeNode(); treeRomania.Text = "Romania"; treeNode2.Text = "Focsani"; treeNode3.Text = "Bucuresti"; treeRomania.Nodes.Add(treeNode2); treeRomania.Nodes.Add(treeNode3); treeView1.Nodes.Add(treeRomania);
Se poate determina ce nod a fost selectat, prin utilizarea proprietatii SelectedNode. Aceasta proprietate este o referinta catre nodul curent selectat. Poate fi selectat doar un singur nod in acelasi timp.
Evenimentul AfterSelect apare dupa ce un nod este selectat. Acest eveniment primeste ca parametru un obiect TreeViewEventArgs, care contine informatii despre nod.
//metoda apelata la evenimentul AfterSelect void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { MessageBox.Show("Nodul selectat este "+ e.Node.Text); }
Putem determina daca un nod este parinte, verificand daca acesta mai contine alte noduri (“are copii”).
//verificam toate nodurile foreach (TreeNode nod in treeView1.Nodes) { //daca are copii if (nod.Nodes.Count>0) { //nodul este parinte MessageBox.Show(nod.Text + " este nod parinte"); } }
Controlul TreeView contine mai multe evenimente care s-ar putea dovedi foarte utile programatorului: AfterCollapse (cand un nod a fost restrans), AfterExpand (cand un nod a fost expandat), ParentChanged (cand nodul parinte a fost schimbat).
TreeView este unul din cele mai complexe controale din .Net Compact Framework, alaturi de DataGrid.
La sfarsitul acestor articole dedicate controalelor din .Net Compact Framework, putem trage urmatoarele concluzii:
- interfata utilizator poate fi proiectata rapid, fara prea multe probleme, cu ajutorul controalelor disponibile in .Net Compact Framework.
- controalele disponibile ofera doar functionalitatile importante ale controalelor din .Net Framework.
- aplicatiile .Net CF difera din punct de vedere al interfetei utilizatorului, in functie de platforma.
In urmatorul articol, vom descoperi “lumea datelor” in .Net Compact Framework.
Stay tuned !! :)
Pingback/Trackback
Tweets that mention Controale in .Net CE – Partea 3-a | by zeltera -- Topsy.com
Pingback/Trackback
Contact, Task, Appointments (PIM) | by zeltera