Windows Forms - perusteet - Pääteohjaus 2

  1. Kirjoita oma versiosi Autolaskurista. Aloita Visual Studiolla uusi projekti ja valitse tyypiksi Windows Forms. Lisävinkkejä voit katsoa artikkelista: Autolaskuri for .net ja luentoesimerkistä. Delphi-monisteesta on myös paljon apua vaikka käytetty kieli ei C# olekkaan. Hyvät perusohjeet ja -mallit C# ja Windows Forms -ohjelmoinnista löydät C# Essentials -kirjan Designing Forms in C# and Visual Studio -osiosta.
  2. Lisää ohjelmaasi myös polkupyörien laskeminen
  3. Varmista, että autoja ja polkupyöriä voi laskea myös näppäimistön avulla eli painamalla jotain tietty näppäintä. vinkki: &-merkki painikkeen tekstissä sopivan merkin edessä tekee tästä merkistä shortcutin.
  4. Lisää ohjelmaan menut
  5. Lisää ohjelmaan about-dialogi. Laita dialogiin painike, jolla dialogin voi sulkea. Tee tästä modaalinen dialogi eli dialogi, joka estää auki ollessaan ohjelman pääikkunan käyttämisen.
  6. Lisää ohjelmaan värinvalintadialogi jolla voi muuttaa laskurikenttien taustaväriä
  7. Laita auto ja polkupyörä liikkumaan näytöllä edestakaisin
  8. Lisää autolaskuriin flowlayoutpanel-kontrolli. Lisää sen sisään muutama painike. Tutki miten painikkeet asettuvat paneelin kokoa muutettaessa. Kokeile mitä tapahtuu, kun muutat painikkeiden dock-ominaisuuksia. Aseta paneeliin sijoittamasi painikkeet piilottamaan itsensä niitä napautettaessa. Miten näkyviin jäävien painikkeiden sijainti muuttuu?
  9. Lisää ohjelman file-valikkoon tallenna-valinta, joka tallentaa tekstitiedostoon laskurien luvut
  10. Lisää ohjelmaasi painike, joka luo uusia autolaskuri-ikkunoita
  11. Lisää liikkuva auto myös about-dialogiin. Tee ratkaisu (luo autosta oma luokka) jolla voisit helposti luoda liikkuvia autoja minne tahansa.
  12. Lisää auto-luokkaasi tapahtuma, joka kasvattaa laskurin arvoa aina, kun auto törmää seinään. kts. luentomalli. Tarvitset tässä delegaattia.
  13. Toteuta drag and drop eli mahdollista tarttuminen autoon tai polkupyörään ja niiden raahaaminen laskurin päälle. Raahaaminen lisäisi laskuria 10:llä.

    vinkki: Drag-and-Drop (Suomeksi), A Simple Drag And Drop How To Example ja Drag and Drop Files with C#.

          // raahattavan objektin mousedown-tapahtumankäsittelijä
           private void maskedTextBox1_MouseDown(object sender, MouseEventArgs e)
            {
                DoDragDrop(sender, DragDropEffects.All); // sender on objekti jolle mousedown-tapahtuma tapahtuu
    
            }
    
         // vastaanottava objekti (lomake) laittaa päälle sopivan raahausefektin
            private void Form1_DragEnter(object sender, DragEventArgs e)
            {
                e.Effect = DragDropEffects.Move;
    
            }
         // lomake ottaa raahauksen vastaan ja tekee raahatulle
         // objektille jotain
         // GetData palauttaa null jos se ei kykene antamaan pyydettyä muotoa
            private void Form1_DragDrop(object sender, DragEventArgs e)
            {
                if (e.Data.GetDataPresent(typeof(MaskedTextBox))) // testataan onko oikeantyyppinen raahattava objekti
                {
                    MaskedTextBox obj = e.Data.GetData(typeof(MaskedTextBox)) as MaskedTextBox;
                    obj.Text = "Raahaus toimii" ;
                }
    
            }
    

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/gko/ohjaus/ohjaus2/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2010-10-04 16:03:55
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta