Windows Forms - perusteet - Pääteohjaus 2
- 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.
- Lisää ohjelmaasi myös polkupyörien laskeminen
- 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.
- Lisää ohjelmaan menut
- 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.
- Lisää ohjelmaan värinvalintadialogi jolla voi muuttaa laskurikenttien taustaväriä
- Laita auto ja polkupyörä liikkumaan näytöllä edestakaisin
- 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?
- Lisää ohjelman file-valikkoon tallenna-valinta, joka tallentaa tekstitiedostoon laskurien luvut
- Lisää ohjelmaasi painike, joka luo uusia autolaskuri-ikkunoita
- Lisää liikkuva auto myös about-dialogiin. Tee ratkaisu (luo autosta oma luokka) jolla voisit helposti luoda liikkuvia autoja minne tahansa.
- Lisää auto-luokkaasi tapahtuma, joka kasvattaa laskurin arvoa aina, kun auto törmää seinään. kts. luentomalli. Tarvitset tässä delegaattia.
- 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