15 - Werken met meerdere forms

Werken met meerdere forms
Programming C# - II
Week 15A+B

1 / 17
volgende
Slide 1: Tekstslide
Applicatie- en mediaontwikkelaarMBOStudiejaar 1

In deze les zitten 17 slides, met tekstslides.

time-iconLesduur is: 90 min

Onderdelen in deze les

Werken met meerdere forms
Programming C# - II
Week 15A+B

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Vandaag
  • Werken met meerdere forms in je applicatie.
  • Demonstratie opdracht 1
  • Bespreken eindopdrachten hoofdstuk 13

Slide 2 - Tekstslide

Deze slide heeft geen instructies

Foutje rechtzetten
  • In de module zie je nog een aantal keer de uitleg staan dat een public variabele in camelCase moet worden geschreven.
  • Dit is niet correct. Een public variabele moet ook in PascalCase. 
  • Dit ga ik nog aanpassen...!!

Slide 3 - Tekstslide

Deze slide heeft geen instructies

De applicatie die je gaat maken in de eerste opdracht.

Slide 4 - Tekstslide

Deze slide heeft geen instructies

Uitleg
  • We gaan zo eerst kijken naar de stappen daarna samen de app maken.

Slide 5 - Tekstslide

Deze slide heeft geen instructies

Formulier en Class aanmaken
Class Film.cs aanmaken

Form aanmaken zelfde als bij een class.

Een form is natuurlijk ook gewoon 
een class..!

Slide 6 - Tekstslide

Deze slide heeft geen instructies

Een formulier heeft ook een constructor
Net als een class heeft een formulier ook een constructor.






Bij het openen van een formulier vanuit je 'hoofdformulier' maak je net als bij een class een instantie aan van dat formulier.

FrmInvoer invoerFormulier = new FrmInvoer();

Slide 7 - Tekstslide

Deze slide heeft geen instructies

Gegevensoverdracht tussen forms
Een regel is dat je nooit gegevens vanuit één formulier in een ander formulier plaatst.

Optie 1. Je maakt een public variabele of properties aan in een losse class die je dan gebruikt als 'database'
Optie 2. Je laat je nieuwe formulier de waarde zelf ophalen met een methode of een constructor.

Slide 8 - Tekstslide

zie ook de bug in de kassa applicatie bij afronden order (betalen): er wordt een reset gedaan maar een neveneffect is dat er een event afgaat dat een object dat op null gezet is benaderd!

Een class kan ook een datasource zijn net als een database.

Slide 9 - Tekstslide

Deze slide heeft geen instructies

Controls vanuit Data Source

Slide 10 - Tekstslide

Deze slide heeft geen instructies

BindingSource
Na het toevoegen van het object aan je project heb je net als bij de databases de mogelijkheid om gebruik te maken van de BindingSource.
  • De inhoud wordt opgeslagen in een public class die je aanmaakt in het invoerformulier.
  • In de constructor wordt een leeg object toegevoegd aan de filmBindingSource. 








Je hebt in eerdere lessen al kennis gemaakt met de BindingSource om bijvoorbeeld een DataGridView te koppelen aan een database.



Slide 11 - Tekstslide

Deze slide heeft geen instructies

Interactie met het formulier

this.DialogResult = DialogResult.OK;
this.DialogResult = DialogResult.Abort;

Wanneer er bijvoorbeeld op een knop wordt geklikt kun je 
bovenstaande code toevoegen aan je code. 
In dat geval zal de property DialogResult van het formulier op OK of Abort worden gezet.
Deze property kun je weer gebruiken in bijvoorbeeld een IF statement.

het keyword this in de code geeft aan dat het om DIT formulier gaat.

Slide 12 - Tekstslide

Deze slide heeft geen instructies

Interactie met het formulier (main)
Op je main form

if (frmInvoer.ShowDialog() == DialogResult.OK)
        {

        }



En als er op Cancel wordt geklikt dan gooien we de invoer weg (DialogResult.Abort)
frmInvoer.Dispose();

Slide 13 - Tekstslide

Deze slide heeft geen instructies

Toevoegen van de gegevens aan de BindingSource
De gegevens opslaan in een public variabele (nieuweFilm moet dus eigenlijk in PascalCase)

nieuweFilm = (Film)filmBindingSource.Current;


Deze public variabele ga je daarna toevoegen aan de FilmBindingSource in je main formulier.

filmBindingSource.Add(frmInvoer.nieuweFilm);

Slide 14 - Tekstslide

Deze slide heeft geen instructies

Sluiten van het formulier
Op het moment dat de gegevens zijn opgeslagen wil je uiteraard dat het formulier gesloten wordt.

 this.Close();

Slide 15 - Tekstslide

Deze slide heeft geen instructies

De eindopdracht

Slide 16 - Tekstslide

Deze slide heeft geen instructies

En nu verder
Volgende week - Laatste les
   Herhalen, vragen stellen, korte vooruitblik op PRC-III en oefenen en evalueren.
   Bespreken wat je op de toets kunt verwachten.

Vandaag
   Opdrachten maken
   Eindopdracht maken en inleveren
   Verder met je PRA opdracht

Ik ben vandaag in gesprek met een aantal studenten. Tussendoor is er uiteraard voldoende tijd om vragen te stellen (en anders komt dat na de les)

Slide 17 - Tekstslide

Deze slide heeft geen instructies