5. WinForms: GUI Programmering i.NET. 2 Nordjyllands Erhvervakademi - 2009 Mål “.NET supports two types of form-based apps, WinForms and WebForms. WinForms.

Slides:



Advertisements
Lignende præsentationer
Atomer Et programmeret forløb. En måde at lære på.
Advertisements

SharePoint /36 2 General SettingsPermissions and ManagementCommunications Titel, description and navigation Versioning settings Advanced settings.
CoDriver Afslut 1 Tastaturet Her kan du få lidt at vide om tastaturet og tasternes funktion. Klik på knapperne nederst til venstre for at bladre frem og.
Game Maker 7. Sådan ser Game Maker ud når det startes op.
Videregående pc-vejledning Modul 04: Windows-elementer 60+Bornholm.
Hjemmesidekonstruktion Tjekspørgsmål 1.Hvad er et markup-sprog – hvad bruges det til? 2.Hvad er forskellen mellem et markup-sprog og et scriptsprog? 3.Hvad.
Torbenfeldvej Vallensbæk strand Tlf.: – – dagligt brug af vores hjemmeside •AGEN LYS har en stor og omfattende.
Introduktion til HTML Formularer V1 introduktion til formularer Den sidste af HTML strukturmarkørerne er FORM-markøren, der bruges til at lave.
Velkommen til Softwarekonstruktion
Aktivering af link til passwordliste i SFX Anders Vestergaard, DBC, 19. februar 2013 OBS: Inden passwordliste aktiveres i SFX skal liste være oprettet.
WinForms: GUI Programmering i .NET
1 GUI Programmering i.NET WinForms. Mål “.NET supports two types of form-based apps, WinForms and WebForms. WinForms are the traditional, desktop GUI.
Instruktion i Animation Shop
Formularer (Access, del 3)
Atlas/Otto Knudsen 1 "Atlas"  AJAX Extensions til ASP.NET.
07 – Kort om OO Introduktion.
Sikkerhed/Otto Knudsen 1 Diagnostics  Debug af web-applikationer.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Distribueret programmering, specielt.NET Remoting Rasmus D. Lehrmann DM
Object-Orienteret Programmering og Design. 2 Nordjyllands Erhvervakademi – 2009 Indhold “Classes, objects and object-oriented programming (OOP) play a.
NetBeans Installation og brug.

Design af brugerflader11.1 Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.
Design af brugerflader12.1 Kursusgang 12 Oversigt: Sidste kursusgang Layout-manager Event-håndtering.
Exceptions. 2 Nordjyllands Erhvervakademi – 2009 Objectives “Unfortunately, errors are a part of life. Some are detected by the compiler, some are detected.
Opret en database i Reference Manager, ver. 11 Åbn programmet. Opret en ny database. Placér basen ude på ”skrivebordet ” (kun i denne sammenhæng – da baserne.
Tietgen Skolen Trick med facadeklasse og serialisering ”Trick” – model ”samles” til eet overordnet objekt Alle klasser i model skal have attriutten [Serializable]
Kursus om borger.dk og brugen af digital signatur
Masterpages/Otto Knudsen 1 Master Pages Master Pages i ASP.NET 2.0.
Eksekvering/Otto Knudsen 1 Udrulning Publicering af en web-applikation.
Introduktion/Otto Knudsen 1 Overblik WebForms ASP.NET.
Oprettelse af tabeller (Access, del 2)
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
Pleje og Sundhed Gennemførte719 Inviterede895 Svarprocent80% FREDERICIA KOMMUNE MTU og Psykisk APV 2012 Rapportspecifikationer.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
ETU 2008 | Elevtilfredshedsundersøgelse Erhvervsskolen Nordsjælland HTX (Teknisk Gymnasium) - Hillerød Baseret på 313 besvarelser.
1 Bestanddele i en Windows form-løsning GUI kontroller (eng.: controls) & komponenter (eng.: components) Almindelige egenskaber, metoder & hændelser for.
Stig Irming-Pedersen ASP.NET MVC Partner Copenhagen Software.
AJAX/Otto Knudsen 1 AJAX Motivation Definition. AJAX/Otto Knudsen 2 Motivation En typisk web-applikation er synkron klienten sender en forespørgsel og.
MSBuild & Team Build i C#/C++ solutions VSTS ERFA d. 25 November.
Rapporter (Access, del 5). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller, og.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Grunde til at jeg elsker dig
Lektion 7 Læsestof: Kopier fra Caranno
Fundamentale datastrukturer
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
1..NET Arkitektur. 2 Nordjyllands Erhvervakademi Mål “Microsoft.NET is based on the Common Language Runtime (CLR) and an extensive set of Framework.
Interaktionsformer En begrebsmæssig model kan understøttes med forskellige interaktionsformer Interaktionsformen fastlægger centrale egenskaber: Hvordan.
1 Team Build med Team Foundation Server 2008 Konfiguration og udvidelse af build jobs Kort præsentation Hvorfor bruge Team Build Afvikling af et build.
Masterpages/Otto Knudsen 1 Navigation på webstedet Kontroller til navigation mellem siderne på webstedet.
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
Oprettelse af tabeller (Access, del 2)
Webserveren kan afvikle flere applikationer, der hver har deres eget selvstændige ”liv” og hukommelse. Den enkelte applikation består typisk af flere elementer.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
DIEB7.1 Kursusgang 7 Oversigt: Sidste kursusgang Layout-manager Event-håndtering.
Databaseadgang fra C#:
C#: Data Typer. 2 Nordjyllands Erhvervakademi Indhold: “.NET is designed around the CTS, or Common Type System. The CTS is what allows assemblies,
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
DIEB7.1 Kursusgang 7 Oversigt: Sidste kursusgang Opgaver Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge45 GUI.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
Indledende Programmering Uge 6 - Efterår 2006
 Jens Bennedsen, 2003, revideret af EE Introducerende objektorienteret programmering MVC Et mønster for grænseflader.
Formular designer – Basis Efterår 2016 Tilst
Software Testing Software testing.
(brug af MVVMStarterLibrary2018)
Præsentationens transcript:

5. WinForms: GUI Programmering i.NET

2 Nordjyllands Erhvervakademi Mål “.NET supports two types of form-based apps, WinForms and WebForms. WinForms are the traditional, desktop GUI apps. The great news is that Visual Studio.NET enables quick, drag- and-drop construction of form-based applications…” •Event-drevet, code-behind programmering •Visual Studio.NET •WinForms •Controls

3 Nordjyllands Erhvervakademi Del 1 •Event-drevet, code-behind programmering…

4 Nordjyllands Erhvervakademi Event-driven applications •Ideen er meget simpel: –“user actions” bliver til “events” –events overføres en for en til applikationen, som processererer eventen vha. en eventhandler –Sådan programmeres de fleste GUI’er… GUI App

5 Nordjyllands Erhvervakademi Eksempel på GUI-baserede events •Mouse move •Mouse click •Mouse double-click •Key press •Button click •Menu selection •Change in focus •Window activation •etc.

6 Nordjyllands Erhvervakademi Code-behind •Events håndteres af metoder (eventhandlere) som ligger “bagved” den synlige GUI –I MS-termer kendt som "code-behind" –Vores job bliver at programmere disse metoder…

7 Nordjyllands Erhvervakademi Call-backs •Events er et call fra et objekt back til os… •Hvordan oprettes forbindelsen? –Visual Studio etablerer forbindelsen via auto-genereret kode

8 Nordjyllands Erhvervakademi Del 2 •Visual Studio.NET…

9 Nordjyllands Erhvervakademi Visual Studio.NET (VS.NET) •Ét IDE til alle former for.NET udvikling –Fra klassebiblioteker over form-baserede apps til web services –Du kan bruge C#, VB, C++, J#, etc.

10 Nordjyllands Erhvervakademi Basal operation •Visual Studio opererer i 1 af 3 tilstande: 1)design 2)run 3)break •Se VS title bar hvis du er i tvivl… designrunbreak

11 Nordjyllands Erhvervakademi Eksempel: en windows-applikation •GUI apps baseres på forms og controls… –en form repræsenterer et vindue –en form indeholder 0 eller flere controls –en control interagerer med brugeren •Lad os implementere en GUI app i en række skridt…

12 Nordjyllands Erhvervakademi Step 1 •Opret et nyt projekt af typen “Windows Application” –VS. Opretter automatisk en form…

13 Nordjyllands Erhvervakademi Step 2 — GUI design •Vælg de ønskede controls fra toolbox’en… –placer musen over toolbox for at se controls –drag-and-drop til formen –placer og tilpas størrelsen på dine control

14 Nordjyllands Erhvervakademi GUI design … •En simpel regnemaskine: •Placer og konfigurer controls –klik for at vælge –sæt properties via Propertiesvinduet

15 Nordjyllands Erhvervakademi Step 3 — kodedesign •Implementer formens “Code behind”… •Dobbeltklik på den control du vil implementere –kodeviduet popper automatisk frem

16 Nordjyllands Erhvervakademi Step 4 — run mode •Kør!

17 Nordjyllands Erhvervakademi Break mode? •Igangsættes i denne app eksempelvis ved forkert indtastning…

18 Nordjyllands Erhvervakademi Arbejde med Visual Studio •I Visual Studio arbejder vi med source files, projects & solutions •Source files indeholder kode –extension.cs,.vb, etc. •Et projekt repræsenterer 1 assembly –bruges af VS til at holde styr på source files –alle source files skal skrives i samme sprog –extension.csproj,.vbproj, etc. •Solution (*.sln) files holder styr på projekter –så man kan arbejde med flere projekter

19 Nordjyllands Erhvervakademi Del 3 •WinForms…

20 Nordjyllands Erhvervakademi WinForms •Et andet navn for traditionelle, Windowsagtige GUI-applikationer –i modsætning til WebForms, som er web-baserede •Implementeres vha. FCL –dvs. portabelt til enhver.NET platform

21 Nordjyllands Erhvervakademi Abstraktion •FCL fungerer som abstraktion –adskiller WinForm app fra den underlæggende platform System.Windows.Forms.Form CLR Windows OS instance of FCL class object

22 Nordjyllands Erhvervakademi Form properties •Form properties kontrollerer formens visuelle fremtræden: –AutoScroll –BackgroundImage –ControlBox –FormBorderStyle (sizable?) –Icon –Location –Size –StartPosition –Text (fx window's caption) –WindowState (minimized, maximized, normal) Form1 form; form = new Form1(); form.WindowState = FormWindowState.Maximized; form.Show();

23 Nordjyllands Erhvervakademi Form metoder •Actions der kan udføres på en form: –Activate :giv denne form fokus –Close :luk & frigør tilknyttede ressourcer –Hide :gem, men hold fast i ressourcerne til senere visning. –Refresh :redraw –Show :gør formen synlig på skærmen & activate form.Hide();. form.Show();

24 Nordjyllands Erhvervakademi Form events •Events du kan reagere på: –find propertiesvinduet –dobbeltklik på event-navnet –Load :lige før formen vises første gang –Closing :når formen lukkes (mulighed for cancel) –Closed :når formen helt sikkert lukkes –Resize :når brugerer ændrer på formstørrelsen –Click :når brugeren klikker på formens baggrund –KeyPress : når brugeren trykker en tast mens formen har fokus

25 Nordjyllands Erhvervakademi Eksempel •Spørg brugeren før formen lukkes: private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) { DialogResult r; r = MessageBox.Show("Do you really want to close?", "MyApp", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (r == DialogResult.No) e.Cancel = true; }

26 Nordjyllands Erhvervakademi Part 4 •Controls…

27 Nordjyllands Erhvervakademi Controls •Brugerinterfaceobjekter på formen: –labels –buttons –text boxes –menus –list & combo boxes –option buttons –check boxes –etc.

28 Nordjyllands Erhvervakademi Abstraction •Som forms, er controls baseret på klasser i FCL: –System.Windows.Forms.Label –System.Windows.Forms.TextBox –System.Windows.Forms.Button –etc. •Controls er objekter af disse klasser object

29 Nordjyllands Erhvervakademi Hvem opretter alle disse objekter? •Hvem er ansvarlig for oprettelsen af control-objekter? –koden auto-genereres af Visual Studio –Efter formobjektet er oprettet oprettes control-objekterne…

30 Nordjyllands Erhvervakademi Naming conventions •Sæt dine controllers navne via Name property •The Microsoft Naming Convention: –cmdOK refererer til en command-knap –lstNames refererer til en List Box Control –txtFirstName refererer til en Textbox Control

31 Nordjyllands Erhvervakademi Labels •Til statisk visning af tekst –bruges til at label andre ting på formen –eller til visning af read-only resultater •Interesting properties: –Text :Det som brugeren ser –Font :Hvordan brugeren ser det

32 Nordjyllands Erhvervakademi Command-knapper •Til at klikke på og derved få udført en handling •Interessante properties: –Text :Knaptekst –Font :Hvordan knapteksten vises –Enabled :Kan den klikkes på? –AcceptButton :Sat til at klikke knappen på ENTER –CancelButton :Sat til at klikke knappen på ESC •Interessante events: –Click :Når der trykkes på knappen

33 Nordjyllands Erhvervakademi Text boxes •Mest almindelige control! –Til visning af text –til data fra eksempelvis db •Masser af features…

34 Nordjyllands Erhvervakademi Text box properties •Basale properties: –Text :tekstboksens indhold (string) –Modified :er teksten modificeret af brugeren? (boolean) –ReadOnly : hvis brugeren ikke skal kunne modificere •Multi-line text boxes? –MultiLine :True tillader flere linier –Lines :array of strings, en for hver linie i tekstboksen –ScrollBars :none, horizontal, vertical eller både horiz. & vert. –AcceptsReturn & AcceptsTab : skal brugeren kunne bruge tabulator og return

35 Nordjyllands Erhvervakademi Text box methods •Interessante metoder: –Clear : fjern indholdet –Cut, Copy, Paste : interaktion med clipboard’et –Undo : undo sidste rettelse i tekstboksen –Select, SelectAll : vælg noget af/alt indholdet

36 Nordjyllands Erhvervakademi Text box hændelser •Interesante hændelser: –Enter, Leave :forekommer, når fokus ændres –KeyPress :forekommer når en ascii tast aktiveres –KeyDown, KeyUp :forekommer ved alle taste kombinationer –TextChanged :forekommer når teksten ændres –Validating and Validated •Validating giver dig mulighed for at afvise invalide input

37 Nordjyllands Erhvervakademi private void txtName_Validating(object sender, System.ComponentModel.CancelEventArgs e) { if (this.textBox1.Text.Trim() == "") { // invalid input! MessageBox.Show("Please enter name or id..."); e.Cancel = true; // cancel returns focus back to text box } Eksempel: input invalidation •Text boxe kræver ofte validering –.NET tilbyder Validating event –bliver trigget når box’en mister focus cmdOk.CausesValidation = True cmdCancel.CausesValidation = False

38 Nordjyllands Erhvervakademi Radio buttons og Check boxes •Tillader brugeren at vælge en eller flere options •Radio buttons: –brugeren kan kun vælge én (mutually-exclusive) •Check boxes: –brugeren kan vælge en eller flere (uafhængige) •Properties & events: –Checked :True hvis valgt, False hvis ikke –CheckedChanged forekommer når "Checked" ændres

39 Nordjyllands Erhvervakademi Group boxes •Visuel gruppering af controls •Tillader iteration gennem gruppens elementer… foreach (RadioButton rb in this.groupBox1.Controls) if (rb.Checked) MessageBox.Show(rb.Name);

40 Nordjyllands Erhvervakademi Customer[] customers;.. // create & fill array with objects.... // display customers in list box foreach (Customer c in customers) this.listBox1.Items.Add(c); List Boxes •God til at vise /vedligeholde en liste af data –liste af strings –liste af object (list box kalder selv ToString()) // display name of selected customer (if any) Customer c; c = (Customer) this.listBox1.SelectedItem; if (c == null) return; else MessageBox.Show(c.Name);

41 Nordjyllands Erhvervakademi Advarsler 1.Skriv ikke kode der afhænger af rækkefølgen af events… –rækkefølgen er aldrig garanteret –Hver event behandles uafhængigt af andre 2.Noget kode trigger events bagved koden… –en naturlig sideeffekt af event-drevet programmering this.textBox1.Text = "new value" // triggers TextChanged

42 Nordjyllands Erhvervakademi Kun toppen af isbjerget… •Menuer, dialoger, toolbars, etc. •Tusinder af andre controls –.NET and ActiveX –højreklik på Toolbox –"Customize Toolbox"

43 Nordjyllands Erhvervakademi Opsamling •Event-drevet programmering er meget intuitivt i GUI apps •Forms er det første skridt i GUI design –hver form repræsenterer et vindue på skærmen –Konstruktion af GUI foregår ved drag-and-drop •Brugeren interagerer primært med formens control-objekter –labels, text boxes, buttons, etc. –GUI programmering er control programmering!!!