Windows Forms
Οι εφαρμογές Windows Forms είναι εφαρμογές σε περιβάλλον Windows που διαθέτουν γραφικό περιβάλλον χρήστη (GUI) για την επικοινωνία με τον χρήστη. Μπορούν να φτιαχτούν χρησιμοποιώντας το .NET Framework.
Η εφαρμογή απαιτεί το .NET framework να είναι εγκατεστημένο στον υπολογιστή που τρέχει και είναι πολύ εύκολο για τον προγραμματιστή να φτιάξει γρήγορα μια εφαρμογή χρησιμοποιώντας έτοιμες βιβλιοθήκες του. Επίσης το συνολικό μέγεθος της παραμένει μικρό. Όμως δεν μπορεί να εκτελεστεί ως standalone.
Διεργασία και νήμα
Μια τέτοια εφαρμογή είναι μια διεργασία η οποία χρησιμοποιεί ένα νήμα (thread) για την επικοινωνία της διεργασίας με το λειτουργικό σύστημα (Windows). Η επικοινωνία αυτή γίνεται μέσω messages.
Έτσι η εφαρμογή αντιλαμβάνεται τις κινήσεις του ποντικιού και τα πατήματα πλήκτρων του πληκτρολόγιου. Μπορούν να χρησιμοποιούνται και άλλα νήματα για την εκτέλεση άλλων λειτουργιών. Για το γραφικό περιβάλλον τα Windows Forms χρησιμοποιούν μία ή περισσότερες φόρμες.
Φόρμα και αντικείμενα ελέγχου (controls)
Η φόρμα (Form) είναι ένα αντικείμενο. Η γραφική του αναπαράσταση όταν τρέχει το πρόγραμμα είναι το ορθογώνιο πλαίσιο (παράθυρο) της εφαρμογής. Μια φόρμα έχει ειδικά αντικείμενα για την είσοδο πληροφοριών από τον χρήστη και την απεικόνιση αποτελεσμάτων του προγράμματος (controls).
Είναι πολύ εύκολο με το κατάλληλο IDE να κατασκευάσει κανείς την γραφική αναπαράσταση μιας φόρμας, προσθέτοντας αντικείμενα control και παραμετροποιώντας τα κατάλληλα.
Λειτουργικότητα φόρμας
Οι φόρμες λειτουργούν με γεγονότα (events). Κάθε φορά που ο χρηστής αλληλεπιδρά με τη φόρμα (πατάει ένα κουμπί της φόρμας, εισάγει κείμενο, επιλέγει μια επιλογή) διάφορα γεγονότα ενεργοποιούνται με αποτέλεσμα το πρόγραμμα να εκτελέσει μεθόδους οι οποίες χειρίζονται αυτά τα συγκεκριμένα γεγονότα. Κάθε control έχει ορισμένα μέλη γεγονότα.
Ως στιγιμιότυπο (instance object) αυτά τα γεγονότα είναι διαφορετικά από τα αντίστοιχα γεγονότα ενός άλλου στιγιμιότυπου ακόμα και αν είναι του ίδιου τύπου. Έτσι είναι εύκολο το γεγονός, ένα control να χειρίζεται από μία συγκεκριμένη μέθοδο.
Γίνεται επίσης, μια μέθοδος να χειρίζεται πολλά γεγονότα απο διαφορετικά controls αλλά και ένα γεγονός να χειρίζεται από πολλές μεθόδους, οι οποίες εκτελούνται με τη σειρά με την οποία συσχετιστήκανε με αυτό το γεγονός.
Απλή εφαρμογή Windows Forms – γεννήτρια κωδικών
Σε αυτό το παράδειγμα η εφαρμογή υλοποιείται με μια φόρμα. Έχει τα παρακάτω αντικείμενα ελέγχου (controls) για το χειρισμό του κυρίου προγράμματος:
- 2 κουμπιά (Button)
- 1 περιοχή εισαγωγής κειμένου (TextBox)
- 1 κουτί για επιλογή ακεραίου με κουμπιά (NumericUpDown)
- 8 κουτια επιλογής (checkbox)
Επιίσης διαθέτει ένα FlowLayoutPanel για τη σωστή τοποθέτηση των κουτιών επιλογής.
Ο χρήστης επιλέγει τι και πόσους χαρακτηρές θέλει να έχει ο κωδικός του ή αν θέλει ένα κωδικό που είναι συλλαβίσιμος και άρα εύκολος να τον θυμάται. Επίσης μπορεί να επιλέξει αν η τυχαία επιλογή από κάθε ομάδα που έχει επιλέξει θα είναι ισοδύναμη. Δηλαδή πρέπει επίσης να επιλέξει το μήκος του κωδικού σε χαρακτήρες ή σε συλλαβές.