15 - Werken met meerdere forms

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

1 / 17
suivant
Slide 1: Diapositive
Applicatie- en mediaontwikkelaarMBOStudiejaar 1

Cette leçon contient 17 diapositives, avec diapositives de texte.

time-iconLa durée de la leçon est: 90 min

Éléments de cette leçon

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

Slide 1 - Diapositive

Cet élément n'a pas d'instructions

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

Slide 2 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

De applicatie die je gaat maken in de eerste opdracht.

Slide 4 - Diapositive

Cet élément n'a pas d'instructions

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

Slide 5 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

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 - Diapositive

Cet élément n'a pas d'instructions

Controls vanuit Data Source

Slide 10 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions

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

 this.Close();

Slide 15 - Diapositive

Cet élément n'a pas d'instructions

De eindopdracht

Slide 16 - Diapositive

Cet élément n'a pas d'instructions

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 - Diapositive

Cet élément n'a pas d'instructions