Hoofdstuk 5 Interactie
Controls Form Label Button Label TextBox
Windows-applicatie class HalloWin2 { static void Main ( ) { } class HalloForm { } Form scherm; scherm = new Form( ); Application.Run(scherm); HalloForm scherm; scherm = new HalloForm( ); Application.Run(scherm); : Form public HalloForm( ) { } this.Text = "Hallo"; this.BackColor = Color.Yellow; this.Size = new Size(200,100);
CirkelCalc class Program { static void Main ( ) { } class Scherm { } Form scherm; scherm = new Form( ); Application.Run(scherm);Application.Run(new Scherm()); : Form public Scherm( ) { } this.Text = "CirkelCalc"; this.ClientSize = new Size(240, 60); zonder rand en titelbalk
CirkelCalc constructor class Scherm : Form { public Scherm( ) { this.Text = "CirkelCalc"; this.ClientSize = new Size(240, 60); } } Label tekst, uitvoer; Button knop; TextBox invoer; tekst = new Label(); knop = new Button(); invoer=new Label(); uitvoer = new TextBox(); this.Controls. Add(tekst); tekst.Location = new Point(65,10); tekst.Size = new Size(35,20); tekst.Text = "straal: "; // enzovoorts... knop.Click += this.bereken; // enzovoorts... Event-propertyafhandelingsmethode
CirkelCalc klik-afhandeling class Scherm : Form { public void bereken(object o, EventArgs ea) { } } invoer.Textdouble.Parse()double straal =; double opp = this.oppervlakte(straal); uitvoer.Text = opp.ToString(); methode met een resultaat private double oppervlakte(double x) { } return Math.PI * x * x; type van het resultaat waarde van het resultaat "leeg" resultaat
CirkelCalc class Scherm : Form { } public Scherm( ) { private double oppervlakte(...) { } } } Button knop; TextBox invoer; Label tekst, uitvoer;...new...Size...Add... knop.Click = this.bereken;...Parse(invoer.Text); uitvoer.Text =......this.oppervlakte(...)... return... gedeclareerd in een andere methode! public void bereken(...) {
CirkelCalc class Scherm : Form { } private double oppervlakte(...) { } }...Parse(invoer.Text); uitvoer.Text = this.oppervlakte(...)... return... gedeclareerd los in de klasse public void bereken(...) { TextBox invoer; Label uitvoer; public Scherm( ) { Button knop; TextBox invoer; Label tekst, uitvoer;...new...Size...Add... knop.Click = this.bereken; } mag je gebruiken in alle methodes heeft de variabelen niet nodig static Scherm
Communicatie met methoden nParameters : aanroeper geeft waarde door aan de methode nMethode-resultaat : methode geeft waarde terug aan de aanroeper net zoals een wiskundige functie
Methoden met een resultaat private double kwadraat (double x) { return x*x ; } type van het resultaat waarde van het resultaat in speciale return-opdracht
Publieksvraag nSchrijf een methode driewerf met een String-parameter, die 3 herhalingen ervan oplevert this.driewerf("Hoera!")"Hoera!Hoera!Hoera!" private string driewerf (string x) { } return x+x+x;
nAanroep van void-methode geldt als opdracht Aanroep van methoden g.DrawLine(pen, 10,10, 20,20) ; a = this.kwadraat (5) ; g.DrawLine(pen, this.kwadraat (5), 10, 25, 50); zonder resultaat nAanroep van methode met resultaat geldt als expressie … this.kwadraat (5) + 1 …
Return is laatste opdracht Parameters krijgen hun waarde bij de aanroep private double gemiddelde (double a, double b, double c) { } double totaal; totaal = a + b + c ; return totaal / 3; Lokale variabele krijgen hun waarde in een toekenning
Methodes die elkaar aanroepen private double kwadraat (double x) { return x*x ; } private double oppervlak (double r) { return Math.PI * this.kwadraat(r); } public void bereken (...) { uitvoer.Text = this.oppervlak(25).ToString(); } class CirkelCalc : Form { }
-syntax expressie getal expressie operator expressie() variabele ”” symbool object expressie (), new klasse naam property naam this klasse naam methode naam.
Syntax van opdrachten opdracht (), ;expressie klasse naam object expressie. methode naam =expressie;variabele property naam += returnexpressie;
Grafische User Interface (GUI) n8 declaraties n8 keer new... n8 keer this.Controls.Add(...) n42 property-toekenningen TrackBar Button Label Panel n8 declaraties n8 keer new... n8 keer this.Controls.Add(...) n42 property-toekenningen
Visual Studio Design Mode
Code gegenereerd door Visual Studio Designer namespace Mixer { static class Program { static void Main() { Application.Run (new Mixer()); } namespace Mixer { partial class Mixer : Form { // constructor Mixer() { this.InitializeComponent(); } // event-handlers void klik(object o, EventArgs ea) { } namespace Mixer { partial class Mixer { #region generated code void InitializeComponent() { this.b = new Button(); b.Text = " zwart " ; b.Click += this.klik; this.Controls.Add(this.b); } #endregion private Button b; } Program.csMixer.csMixer.Designer.cs