27. marts 2007 - 09:21Der er
9 kommentarer og 1 løsning
windows applikation med flere ui
Har kigget en smule på udvikling af windows-applikationer men er stødt på et lille problem. Jeg kan sagtens lave en simpel applikation med flere vinduer - og jeg kan også godt lave en simpel MDI-applikation - men hvordan laver man en applikation med kun ét vindue men flere forskellige brugerflader alt afhængig af hvilket menupunkt brugeren har valgt.
Hvis for eksempel brugerne af systemet skal kunne lægge et produkt ind, se liste af produkter, foretage en bestilling samt se foretagede bestillinger og hver af disse ting har hver deres form men det hele skal foregå i samme vindue hvordan klares det så? Bortset fra, at det så er bygget op vha faneblade, så måske lidt i retning af "system properties" i kontrolpanelet.
I et inbound callcenter, hvor identiteten på den, der ringer ind, skal bekræftes, kan kontrollen nu foregå i telefonkøen. Det understøtter fem centrale KPI'er for callcentre.
Jeg ville da klart anbefale at bruge UserControls til hver sin del af applikationen. UserControls er netop lavet så man kan separere og indlejre forskellige dele af brugergrænsefladen. Så i dit tilfælde ville du have en UserControl til at registrere produkter, en UserControl til at vise en liste med produkterne, en til at foretage bestillinger og en sidste til at se bestillingerne. En UserControl har mange af de samme egenskaber som en Form, nemlig et Designer view til at definere GUI'en og en partial klasse til at håndtere selve funktionaliteten (koden).
På din main Form skal du så bare tilføje dine 4 UserControls og håndtere hvornår de skal vises.
At have alt kode i samme form og bygge hele UI'en op med paneler vil jeg ihvertfald stærkt fraråde (bla. pga. uoverskueligheden, hvilket du også selv stiller spørgsmål til, og fordi UserControls eksiterer). :)
Mvh.
- Snap
Så søg på UserControls på Google, der er mange tutorials som giver dig hurtigt indblik i hvordan de bruges bedst.
Det er nu faktisk også ret smart med UserControls. Alt funktionalitet er indlejret i dem og det eneste du behøver er en Main Form med en reference til den UserControl som skal være synlig. Altså noget lignende: :)
UserControl m_currentControl;
public void ChangeCurrentControl(UserControl curCtrl) { if(m_currentControl != null) this.Controls.Remove(m_currentControl);
jeg har fået leget en masse med dette og kan se fordele og ulemper ved alle metoder - iøvrigt kan også nævnes at en tab (med selve tab-funktionaliteten skjult) også bruges en del steder.
Jeg er stadig åben over for forslag og eventuelle nye idéer - ellers så kom i hvert fald med et svar.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.