ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 8 η : Αντικείμενα για εισαγωγή & επεξεργασία κειμένου (TextBox, RichTextBox, MaskedTextBox) Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Λογιστικής & Χρηματοοικονομικής
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Σκοποί ενότητας Στην συγκεκριμένη ενότητα παρουσιάζονται αντικείμενα γραφικής διασύνδεσης με το χρήστη που μπορούν να χρησιμοποιηθούν για εισαγωγή και επεξεργασία κειμένου όπως είναι τα TextBox, RichTextBox και MaskedTextBox της Γλώσσας Προγραμματισμού Visual Basic.NET. 4
Περιεχόμενα Αντικείμενα για εισαγωγή και επεξεργασία κειμένου Το αντικείμενο TextBox Το αντικείμενο RichTextBox Το αντικείμενο MaskedTextBox 5
Αντικείμενα για εισαγωγή και επεξεργασία κειμένου Μας επιτρέπουν να χειριστούμε δεδομένα κειμένου: TextBox: Μας επιτρέπει να εισάγουμε κείμενο κατά τη διάρκεια εκτέλεσης της εφαρμογής μας, επιπλέον μας δίνει τη δυνατότητα εισαγωγής πολλαπλών γραμμών καθώς και χαρακτήρων που μπορεί να κρυφτούν (password character masking). RichTextBox: Μας επιτρέπει να εισάγουμε κείμενο με μορφοποίηση που μπορούμε να τροποποιήσουμε (plain text or rich-text format RTF) MaskedTextBox: Μας επιτρέπει να θέσουμε περιορισμούς κατά την είσοδο δεδομένων από τον χρήστη 6
TextBox (1) Τo αντικείμενο TextBox χρησιμοποιείται για να εμφανίσει στον χρήστη ή να δεχθεί δεδομένα από αυτόν σε μια εφαρμογή. Μπορούμε να χρησιμοποιήσουμε τις ιδιότητες Multiline και ScrollBars για να επιτρέψουμε να εμφανίζονται ή να εισάγονται πολλαπλές γραμμές. Σε μια τέτοια περίπτωση μπορούμε να ρυθμίσουμε τις ιδιότητες AcceptsTab και AcceptsReturn (δίνουμε την τιμή true) για καλύτερη διαχείριση όταν αλλάζουμε γραμμή 7
TextBox (2) Μπορούμε να περιορίσουμε τον αριθμό χαρακτήρων που μπορούμε να εισάγουμε σε ένα TextBox με την ιδιότητα MaxLength. Αν θέλουμε να εισάγουμε ένα συνθηματικό οπότε δεν πρέπει να φαίνονται οι χαρακτήρες που πληκτρολογούμε χρησιμοποιούμε την ιδιότητα PasswordChar και δίνουμε τον χαρακτήρα που θέλουμε να φαίνεται Με την ιδιότητα CharacterCasing μπορούμε να μετατρέπουμε σε κεφαλαία ή μικρά ότι χαρακτήρα πληκτρολογεί ο χρήστης. 8
TextBox (3) Με τη μέθοδο Select μπορούμε να επιλέξουμε ένα μέρος του κειμένου που περιέχει το TextBox Αν θέλουμε να απαγορέψουμε ένα συγκεκριμένο χαρακτήρα να μην εισαχθεί μπορούμε να χρησιμοποιήσουμε τους χειριστές συμβάντος KeyDown και Keypress και θέτοντας στην ιδιότητα Handled την τιμή true. Ειδικά για το KeyDown επειδή δεν μπορεί να εμποδίσει τα συμβάντα που ακολουθούν (KeyPress & KeyUp θα πρέπει να χρησιμοποιήσουμε και την ιδιότητα SuppressKeyPress επίσης true θέσουμε Αν θέλουμε να απαγορέψουμε κάθε εισαγωγή θέτουμε στην ιδιότητα ReadOnly την τιμή true 9
RichTextBox (1) Με το αντικείμενο γραφικής διασύνδεσης RichTextBox μπορούμε να εισάγουμε και να επεξεργαστούμε κείμενο. Μας παρέχει δυνατότητες μορφοποίησης κειμένου που δεν μας τις δίνει το κλασικό «πλαίσιο κειμένου» (Textbox). Το κείμενο μπορεί να πληκτρολογηθεί άμεσα μέσα στο αντικείμενο ή μπορεί να φορτωθεί από ένα αρχείο σε μορφή εμπλουτισμένου κειμένου (RTF) ή απλό αρχείο κειμένου. Το κείμενο μέσα στο αντικείμενο μπορεί να μορφοποιηθεί τόσο ως προς τους χαρακτήρες όσο και ως προς την παράγραφο 10
RichTextBox (2) Για να αλλάξουμε τη μορφοποίηση σε ένα κείμενο το επιλέγουμε πρώτα. Μόλις ενεργοποιήσουμε κάποια μορφοποίηση ότι κείμενο εισαχθεί μετά ακολουθεί την συγκεκριμένη μορφοποίηση μέχρι να την αλλάξουμε. Μερικές χρήσιμες ιδιότητες είναι οι παρακάτω: Ιδιότητα SelectionFont: μας επιτρέπει να κάνουμε το κείμενο bold ή italic καθώς και να αλλάξουμε το μέγεθος και την γραμματοσειρά του. Ιδιότητα SelectionColor: μας επιτρέπει να αλλάξουμε το χρώμα. Ιδιότητα SelectionBullet: μας επιτρέπει να δημιουργήσουμε μια λίστα με bullets. Ιδιότητες SelectionIndent, SelectionRightIndent, SelectionHangingIndent: μας επιτρέπουν να δώσουμε μορφοποίηση παραγράφου 11
RichTextBox (3) Μερικές χρήσιμες μέθοδοι είναι: Μέθοδοι LoadFile, SaveFile: μας επιτρέπουν να φορτώσουμε ένα υπάρχον αρχείο RTF ή ASCII ή να αποθηκεύσουμε τα δεδομένα του RichTextBox σε ένα αρχείο Μέθοδος Find: μας επιτρέπει αναζητήσουμε τμήματα κειμένου μέσα στο RichTextBox. Μέθοδος DetectUrls: μας επιτρέπει να εμφανίσουμε ένα σύνδεσμο κατάλληλα μέσα στο κείμενό μας Μέθοδος SelectionProtected: μας επιτρέπει να προστατέψουμε κάποιο κείμενο από αλλαγές του χρήστη 12
Παράδειγμα RichTextBox Private Sub BCopy_Click( ) Handles BCopy.Click RichTextBox1.Copy() Private Sub BCut_Click( ) Handles BCut.Click RichTextBox1.Cut() Private Sub BPaste_Click( ) Handles BPaste.Click RichTextBox1.Paste() Private Sub BSaveFile_Click( ) Handles BSaveFile.Click RichTextBox1.SaveFile("G:\words.rtf") Private Sub BLoadFile_Click( ) Handles BLoadFile.Click RichTextBox1.LoadFile("G:\words.rtf") 13
MaskedTextBox (1) Τo αντικείμενο MaskedTextBox είναι όπως και το κλασικό πλαίσιο κειμένου (TextBox) αλλά βελτιωμένο ώστε να δέχεται ή να απορρίπτει τα δεδομένα που πληκτρολογεί ο χρήστης. Αυτό γίνεται χρησιμοποιώντας ένα είδος μάσκας (ιδιότητα Mask) με την οποία μπορούμε να καθορίσουμε τους παρακάτω περιορισμούς χωρίς να γράψουμε ούτε μια γραμμή κώδικα: Ποιους χαρακτήρες επιτρέπεται να πληκτρολογήσει ο χρήστης Ποιοι χαρακτήρες είναι προαιρετικοί Τον τύπο της αναμενόμενης εισόδου σε μια συγκεκριμένη θέση πχ ψηφίο ή χαρακτήρας Χαρακτήρες μάσκας πχ «-» σε έναν αριθμό τηλεφώνου ή το σύμβολο νομίσματος Ειδική εμφάνιση σε χαρακτήρες πχ να εμφανίζονται όλοι οι χαρακτήρες με κεφαλαία γράμματα 14
MaskedTextBox (2) 15
Αντικείμενα για επιλογή τιμής Επιτρέπουν στο χρήστη τη δυνατότητα επιλογής μιας τιμής από ένα σύνολο τιμών CheckBox: Συνήθως χρησιμοποιείται για επιλογές όπως Ναι/Οχι, True/False. Γενικά μπορεί να χρησιμοποιηθεί και για ένα οποιοδήποτε σύνολο επιλογών από τις οποίες μπορεί να προκύψει ένας οποιοσδήποτε συνδυασμός πχ Χρώμα Άσπρο + Μέγεθος Μικρό + Τιμή Φθηνό RadioButton: Παρόμοια συμπεριφορά με το προηγούμενο. Η διαφορά τους βρίσκεται στο ότι όταν έχουμε πολλά αντικείμενα CheckBox μπορεί να επιλεγούν ταυτόχρονα σε αντίθεση με τα αντικείμενα RadioButton που η επιλογή ενός αποκλείει όλα τα άλλα 16
CheckBox (1) Με τα αντικείμενα CheckBox ο χρήστης έχει τη δυνατότητα να επιλέξει από μια λίστα επιλογών χωρίς η επιλογή ενός να αναιρεί την επιλογή των άλλων όπως συμβαίνει με το RadioButton Με την ιδιότητα Checked μπορούμε να ελέγξουμε αν το αντικείμενο έχει επιλεγεί ή όχι (τιμές true ή false) Επίσης, και με την ιδιότητα CheckedState ελέγχουμε την κατάσταση του αντικειμένου (επιστρέφει Checked ή Unchecked ανάλογα με το αν έχει επιλεγεί ή όχι το συγκεκριμένο CheckBox) Με την ιδιότητα Appearance καθορίζουμε αν το αντικείμενο θα φαίνεται όπως ένα κλασικό checkbox ή ως ένα πλήκτρο διαταγής (button) 17
CheckBox (2) Το αντικείμενο CheckBox αντιδρά σε μια πληθώρα συμβάντων. Τα πιο πολυχρησιμοποιούμενα είναι το CheckedChanged και το Click. Το CheckedChanged συμβάν ενεργοποιείται κάθε φορά που αλλάζει τιμή το CheckBox Με το γνωστό Click συμβάν μπορούμε να προγραμματίσουμε την εφαρμογή μας να κάνει μια ενέργεια κάθε φορά που ο χρήστης κάνει Κλικ με το ποντίκι του. 18
CheckBox (3) Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged If CheckBox1.Checked Then TextBox1.Text = CheckBox1.Text Else TextBox1.Text = "" Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged If CheckBox2.Checked Then TextBox1.Text = CheckBox2.Text Else TextBox1.Text = "" Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged If CheckBox3.Checked Then TextBox1.Text = CheckBox3.Text Else TextBox1.Text = "" Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox4.CheckedChanged If CheckBox4.Checked Then TextBox1.Text = CheckBox4.Text Else TextBox1.Text = "" Private Sub CheckBox5_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox5.CheckedChanged If CheckBox5.Checked Then TextBox1.Text = CheckBox5.Text Else TextBox1.Text = "" 19
RadioButton (1) Με τα αντικείμενα RadioButton ο χρήστης έχει τη δυνατότητα να κάνει ΜΙΑ επιλογή από μια λίστα επιλογών. Δηλαδή κάθε επιλογή αναιρεί όλες τις άλλες Στη διπλανή εικόνα έχουμε αντικείμενα RadioButton που ανήκουν σε 3 ομάδες (αντικείμενα GroupBox) Με την ιδιότητα Checked μπορούμε να ελέγξουμε αν το αντικείμενο έχει επιλεγεί ή όχι Με την ιδιότητα Appearance καθορίζουμε αν το αντικείμενο θα φαίνεται όπως ένα κλασικό radiobutton ή ως ένα πλήκτρο διαταγής (button) 20
RadioButton (2) Private Sub RadioButton1_CheckedChanged( ) Handles RadioButton1.CheckedChanged If RadioButton1.Checked Then Label1.ForeColor = Color.Black Private Sub RadioButton2_CheckedChanged( ) Handles RadioButton2.CheckedChanged If RadioButton2.Checked Then Label1.ForeColor = Color.Blue Private Sub RadioButton3_CheckedChanged( ) Handles RadioButton3.CheckedChanged If RadioButton3.Checked Then Label1.ForeColor = Color.Red Private Sub RadioButton4_CheckedChanged( ) Handles RadioButton4.CheckedChanged If RadioButton4.Checked Then Label1.Font = New Font(Label1.Font.Name, 10) Private Sub RadioButton5_CheckedChanged( ) Handles RadioButton5.CheckedChanged If RadioButton5.Checked Then Label1.Font = New Font(Label1.Font.Name, 20) Private Sub RadioButton6_CheckedChanged( ) Handles RadioButton6.CheckedChanged If RadioButton6.Checked Then Label1.Font = New Font(Label1.Font.Name, 30) Private Sub RadioButton7_CheckedChanged( ) Handles RadioButton7.CheckedChanged If RadioButton7.Checked Then Label1.Font = New Font(Label1.Font.Name, Label1.Font.Size, FontStyle.Bold) Private Sub RadioButton8_CheckedChanged( ) Handles RadioButton8.CheckedChanged If RadioButton8.Checked Then Label1.Font = New Font(Label1.Font.Name, Label1.Font.Size, FontStyle.Italic) Private Sub RadioButton9_CheckedChanged( ) Handles RadioButton9.CheckedChanged If RadioButton9.Checked Then Label1.Font = New Font(Label1.Font.Name, Label1.Font.Size, FontStyle.Underline) GroupBox 21
Τέλος Ενότητας