Tehtävät : GUI-ohjelmoinnin perusteet: käytetyimpiä kontrolleja

Tehtävä 1 - CheckBox-kontrolli home

Tee sovellus, jossa voidaan valita useita eri ostettavia tuotteita CheckBox-kontrollin avulla. Loppukäyttäjä kliksuttelee haluamansa tuotteet, ja painaa Buy Button-kontrollia, jonka jälkeen valitut tuotteet tulostetaan TextBox-kontrolliin.

CheckBox-kontrollin tilan voit tutkia seuraavalla ohjelmoinnilla:


    // myCheckBox is checked
    if ((bool)myCheckBox.IsChecked) {
    
    }
    

Tehtävä 2 - DataGrid -kontrollihome

Tee sovellus, joka osaa esittää JYP-pelaajien tietoja taulukkomuodossa. Käytä hyväksesi aiemmin Labrassa7 tehtyjä luokkia Joukkue ja Pelaaja. Luo olio luokasta Joukkue, joukkueella on lista Pelaaja-olioita. Aseta koodissa tämä lista DataGridin ItemsSourceksi. Huomaa että DataGrid osaa automaattisesti muodostaa sarakkeet Pelaaja-luokan ominaisuuksista, ja rivit tulevat kustakin oliosta. Helppoa!

Tehtävä 3 - Lottokone home

Toteuta sovellus, jolla voidaan arpoa lottorivejä. Lottokoneen tulee osata arpoa: Lotto-, Viking Lotto- ja Eurojackpot-rivejä haluttu määrä. Pidetään sovittuna seuraavia määritteitä eri lotoille:

Vaatimukset:

Tutustu käytettäviin kontrolleihin täältä : Controls list

Vihjeitä:
- luo Lotto-luokka, jossa on toiminto, joka arpoo rivin numeroita
- lottotyyppi välitetään parametrina arpovalle metodille, jotta metodi osaa arpoa oikean määrän numeroita
- palauta arvotut numerot esim. listarakenteen avulla List<int>
- luo pääohjelmassa Lotto-luokasta olio ja käytä sitä arvonnassa
- määrittele drawButton-metodi kutsumaan Click-tapahtumankäsittelyä
  - määrittele pääohjelmassa esim. merkkijono, ja liitä siihen aina uusi arvottu rivi merkkijonona
  - arvottujen rivien välissä voit käyttää rivinvaihtoa (Environment.NewLine, tai "\n"-merkkiä)
  - lopuksi näytä rivejä sisältämä merkkijono ScrollViewer-kontrollin sisällä olevassa TextBlock-kontrollissa

Muutamia koodivihjeitä:


    // get selected value from combobox
    string value = myComboBox.SelectedValue.ToString();
    // random number from range 1-39
    Random rand = new Random();
    int number = rand.Next(1,39+1);
    

Tehtävä 4 - Kiuas (Heater Ultimatum) home

Tehtävänäsi on toteuttaa Kiukaan toiminta. Kiukaan lämpötilaa sekä sen kosteuden arvoja pitää voida muuttaa. Lämpötilan arvot on rajattava välille 0-120.00 ja kosteuden arvot välille 0-100.0. Toteuta Kiuas-luokka ja erillinen käyttöliittymä.

Vaatimuksia:

Klikkaa esimerkkikuvia nähdäksesi sisällöt paremmin:

Muutamia vihjeitä:
- toteuta haluttu graafinen käyttöliittymä design-editorilla
- määrittele 0-9 ja . Button-kontrollit kutsumaan samaa Click-tapahtumaa
- ota käyttöön yksi merkkijono, jonka sisältö näytetään näppäimistön yläpuolella olevassa TextBox-kontrollissa
- liitä Click-tapahtumassa yo. merkkijonoon ko. painikkeen sisältämä teksti (Content)
- näytä yo. merkkijono näppäimistön yläpuolella olevassa TextBox-kontrollissa
- OK-painiketta painettaessa, tutki Kiuas-luokassa onko säätömahdollinen
- muista ottaa huomioon onko säätö lämpötilaa vai kosteutta muuttava
- jos säätö on mahdollinen näytä syötetty arvo sille varatussa kentässä näppäimistön vasemmalla puolella
- muista nollata säätimen yläpuolella oleva syötetty luku

Muutamia koodivihjeitä:


    // Button Click event handling
    private void button_Click(object sender, RoutedEventArgs e)
    {
        // get button Content string
        string buttonString = (((Button)sender).Content).ToString();
    }
    
    // how to remove last charcter from a string
    string line = "Here is a sample text";
    string newLine = line.Substring(0, line.Length - 1); // Here is a sample tex