Στις εφαρμογές της C++/CLI μπορούμε να ενσωματώσουμε δύο ειδών μενού: 1. Κύρια Μενού (Main Menu) Τα οποία εμφανίζονται στο επάνω μέρος της φόρμας,

Σχετικά έγγραφα
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εισαγωγή στο MS Word

Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word

Πρακτικές οδηγίες για την Επεξεργασία Κειμένου

Επεξεργασία πολλαπλών φύλλων εργασίας - Γραφημάτων Excel

Τα Windows Πολύ Απλά και Πολύ Σύντομα

Εισαγωγή στο πρόγραμμα Microsoft word 2003

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Εργαστήριο του Μαθήματος: ΕΠΛ003. Ενότητα 3 Εισαγωγή στο Microsoft Word

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL

ΜΑΘΗΜΑ Άνοιγμα Της Εφαρμογής Επεξεργασίας Κειμένου. 2. Κύρια Οθόνη Της Εφαρμογής Κειμένου ΣΤΟΧΟΙ:

PowerPoint Ένα εργαλείο παρουσίασης

CTEC-153: ΥΠΟΛΟΓΙΣΤΙΚΑ ΦΥΛΛΑ

Εργαστήριο του Μαθήματος: ΕΠΛ001

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Δραστηριότητα 1. Προγραμματίζω τον υπολογιστή (10 ώρες).

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Inspiration 7 ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΜΕ ΠΑΡΑΔΕΙΓΜΑ

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Microsoft Excel Κεφάλαιο 2: Η δομή ενός φύλλου εργασίας... 26

Εργαστήριο Εφαρμοσμένης Πληροφορικής

ΜΑΘΗΜΑ 5 ΣΤΟΧΟΙ: Τρόπος 1:

Εργασία-3: Παρουσίαση Εργασίας. Ομάδα Α. Προετοιμασία Αναφοράς

Το MS Visual Studio επιτρέπει στον προγραμματιστή να αναπτύξει προγράμματα σε δύο διαφορετικές εκδόσεις της γλώσσας C++ : ISO/IEC C++ που αποτελεί

ΕΠΕΞΕΡΓΑΣΙΑ ΚΕΙΜΕΝΟΥ. Κειμενογράφος WORD

«Αβάκιο» Οδηγός χρήσης Μικρόκοσμου που αποτελείται από τις ψηφίδες Καμβάς, Χελώνα, Γλώσσα, Μεταβολέας, Χρώματα.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Επεξεργαστής Κειμένου: (Microsoft Word)

Πώς εισάγουμε μια νέα έννοια χρησιμοποιώντας το εργαλείο Create

Microsoft Office. Δρ. Νικόλαος Σγούρος

ΜΑΘΗΜΑ Προσθήκη Κειμένου. 2. Ελληνική Διάταξη Πληκτρολογίου ΣΤΟΧΟΙ:

4 η Εργαστηριακή Άσκηση

04. Μορφοποίηση περιεχομένων σχεδίου & σύνθετα εργαλεία σχεδίασης

SPSS Statistical Package for the Social Sciences

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES

ΔΗΜΙΟΥΡΓΙΑ ΣΧΗΜΑΤΩΝ. 1) Προβολή Γραμμές εργαλείων Σχεδίαση. ΜΑΘΗΜΑ 5 ο : ΣΧΗΜΑΤΑ-ΕΙΚΟΝΕΣ-ΕΞΙΣΩΣΕΙΣ 1

ΟΔΗΓΙΕΣ ΧΕΙΡΙΣΜΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ DYMO LABEL V.8

Οι πίνακες στην C++/CLI δημιουργούνται και δεσμεύουν χώρο στο Managed Heap (Garbage Collected Heap) Για τον λόγο αυτό οι μεταβλητές των πινάκων

ΓΡΗΓΟΡΕΣ ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΧΡΗΣΗ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ REINER PC set graphic

Visual Basic Γλώσσα οπτικού

Εισαγωγή στο Word. Κεντρική οθόνη του Word

Εργαστηριακή Άσκηση 4 Μορφοποίηση Κειμένου μέσω του

Σχεδιαζόμενη Απόδειξη Πληρωμής

ΔΗΜΙΟΥΡΓΙΑ ΚΑΤΑΛΟΓΟΥ ΕΤΕΡΟΑΝΑΦΟΡΩΝ

ΟΔΗΓΙΕΣ ΔΗΜΙΟΥΡΓΙΑΣ ΕΦΑΡΜΟΓΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΑΜΕΣΟΥ ΑΡΧΕΙΟΥ ΣΕ ΠΕΡΙΒΑΛΛΟΝ VISUAL STUDIO NET

ΕΡΩΤΗΣΕΙΣ WORD Πώς αλλάζουμε το διάστιχο μίας παραγράφου; [Πηγαίνουμε στην παράγραφο και στην κεντρική καρτέλα πατάμε το εικονίδιο Διάστιχο]

1.Puzzle. ΕΠΙΜΕΛΕΙΑ: ΓΕΩΡΓΙΑ ΚΛΩΣΤΡΑΚΗ Σελίδα 1

Σχεδιασμός ιστοσελίδας και ιστολογίου με το Weebly

Αντανάκλαση κειμένου (Text Reflection)

Ράβδος Εργαλείων, σχεδόν τα ίδια εργαλεία και εικονίδια υπάρχουν όπως στα άλλα προγράμματα που έχετε μάθει μέχρι σήμερα.

ΠΛΗΚΤΡΟΛΟΓΙΟ. Η ελληνική διάταξη πλήκτρων είναι η παρακάτω (δεν υπάρχουν άλλες διατάξεις για το ελληνικό αλφάβητο):

Περιγραφή του βασικού παραθύρου του Cubase SE3. Εικόνα 1

ΜICROSOFT VISUAL STUDIO Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging. Εισαγωγή

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο 2 - Άσκηση - Ανάλυση

4. ΠΑΤΗΣΤΕ ΤΟ ΚΟΥΜΠΙ. >> ΓΙΑ ΝΑ ΜΕΤΑΦΕΡΕ ΟΛΑ ΤΑ ΠΕ ΙΑ ΤΗΣ ΛΙΣΤΑΣ ΣΤΟΝ ΚΑΤΑΛΟΓΟ SELECTED FIELDS (ΕΠΙΛΕΓΜΕΝΑ ΠΕ ΙΑ) ΠΑΤΗΣΤΕ ΤΟ ΚΟΥΜΠΙ ΝΕΧΤ

Βάσεις δεδομένων (Access)

Λίγα λόγια από το συγγραφέα Microsoft Word Δημιουργία νέου εγγράφου Το σύστημα Βοήθειας του Word...

Blog στο Wordpress. Επιμέλεια: Δέγγλερη Σοφία

(3) Από την εργαλειοθήκη επιλέξτε το εργαλείο «ετικέτας (Label)». Δημιουργήστε μια ετικέτα στην φόρμα σας.

Το λογισμικό παρουσιάσεων Power Point 2007

Προτεινόμενες εργασίες Προγραμματισμού Διαδικτύου

ΣΧΗΜΑΤΑ-ΕΙΚΟΝΕΣ-ΕΞΙΣΩΣΕΙΣ

Δημιουργία παρουσιάσεων (Power Point)

Ενότητα 17 Εκτύπωση Φύλλων Εργασίας και Γραφικών Παραστάσεων

Εισαγωγή στο Word 2007 Ν. Παπαδόπουλος

ΓΡΑΦΙΚΕΣ ΠΑΡΑΣΤΑΣΕΙΣ ΜΕ ΕXCEL

2.9.3 Χρήση λογισμικού παρουσιάσεων για τη δημιουργία απλών παρουσιάσεων ρουτίνας

Κ.Α.ΕΛ.Ε. Σημειώσεις επάνω στοn επεξεργαστή κειμένου Microsoft Word. Εισηγητής: Χαριτωνίδης Γεώργιος. Βόλος, Νοέμβριος 2008

Βάσεις δεδομένων (Access)

Πρόλογος... 7 ΕΙΔΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE. ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»...

Δημιουργία δισδιάστατου παιχνιδιού, τύπου Pacman. 1ο μέρος.

Δημιουργία και επεξεργασία διανυσματικών επιπέδων στο QGIS

Atlantis - Νέο user interface

Εργαστήριο 1-1 η Άσκηση - Ανάλυση

Σχεδόν όλες οι ιστοσελίδες βασίζονται σε μεγάλο βαθμό σε πίνακες. Για να εισάγουμε έναν πίνακα επιλέγουμε από το μενού Insert->Table.

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Δημιουργία ενός κενού πίνακα

ΟΔΗΓΙΕΣ ΚΕΙΜΕΝΟΓΡΑΦΟΥ 2007

Word 3: Δημιουργία πίνακα

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ ΜΟΡΦΟΠΟΙΗΣΕΙΣ ΜΟΡΦΟΠΟΙΗΣΕΙΣ ΧΑΡΑΚΤΗΡΩΝ. Μάθημα: Πληροφορική Α' Γυμν. Ενότητα: Επεξεργασία κειμένου

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

Άσκηση 5 Firefox Αποθήκευση αρχείων

ΤΟ MICROSOFT WORD XP. Ας ξεκινήσουμε λοιπόν!

Κάθε ένα κελί θα πρέπει να περιέχει ένα μόνο στοιχείο δεδομένων, για παράδειγμα το όνομα σε ένα κελί, το επίθετο σε άλλο κελί.

Ευ ομή. Εγχειρίδιο χρήσης του περιβάλλοντος LT125-dp

ΕΡΩΤΗΣΕΙΣ στην επεξεργασία κειμένου (Word)

Joomla! with K2 - User Guide

Μέρος 2ο (Συγχωνεύοντας Multimedia & Animation)

Οδηγίες για εισαγωγή Photo Gallery σε Ιστοσελίδα με το SharePoint Designer 2007

ΠΡΟΓΡΑΜΜΑ ΕΠΕΞΕΡΓΑΣΙΑΣ ΕΙΚΟΝΑΣ

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : / id ot.com /

Ο ΗΓΟΣ ΧΡΗΣΗΣ Kidspiration 2.1

Πρακτικές συμβουλές κατά την πληκτρολόγηση ., ; :! ( ) " " Άνοιγμα και αποθήκευση εγγράφου Αρχείο, Άνοιγμα. Αρχείο / Αποθήκευση

Transcript:

Στις εφαρμογές της C++/CLI μπορούμε να ενσωματώσουμε δύο ειδών μενού: 1. Κύρια Μενού (Main Menu) Τα οποία εμφανίζονται στο επάνω μέρος της φόρμας, περιλαμβάνουν οριζόντιες επιλογές με κάθετες υποεπιλογές και μέσω των επιλογών του χειριζόμαστε τις δυνατότητες της εφαρμογής. 2. Αναδυόμενα Μενου (Popup ή Context Menu) τα οποία εμφανίζονται όταν βρισκόμαστε επάνω σε κάποιο control και πατήσουμε δεξί κλίκ. Εμφανίζουν επιλογές ειδικές για το αντικείμενο και την κατάσταση που βρίσκεται.

Για να δημιουργήσουμε ένα κυρίως μενού αρκεί να ενσωμστώσουμε στην φόρμα ένα control τύπου MenuStrip Με την ενσωμάτωσή του το μενού παίρνει αυτόματα ένα όνομα π.χ. menustrip1 το οποίο και εμφανίζεται στο κάτω μέρος του κεντρικού παραθύρου (Editor) του Visual Studio. Ταυτόχρονα το control βρίσκεται σε mode menu design που σημαίνει ότι άμεσα μας επιτρέπεται να καθορίσουμε τις λεζάντες των οριζόντιων επιλογών (επιλογές 1 ου επιπέδου) και για κάθε οριζόντια επιλογή τις αντίστοιχες κάθετες επιλογές (επιλογές 2 ου επιπέδου). Κάθε επιλογή 2 ου επιπέδου μπορεί να έχει επιπλέον υποεπιλογές 3 ου επιπέδου και αυτές να έχουν υποεπιλογές 4 ου επιπέδου κ.ο.κ.

Κάθε υποεπιλογή αποτελεί ένα ξεχωριστό αντικείμενο του τύπου ToolStripMenuItem και μπορεί να έχει τις δικές του ιδιότητες και τα δικά του συμβάντα. Κάθε τέτοια υποεπιλογή παίρνει αυτόματα το δικό της όνομα σαν αντικείμενο. Τα ονόματα των αντικειμένων φτιάχνονται συνθέτοντας το κείμενο (Τext) της κάθε επιλογής και την λέξη «ToolStripMenuItem» Π.χ. filetoolstripmenuitem, opentoolstripmenuitem, savetoolstripmenuitem, saveastoolstripmenuitem, edittoolstripmenuitem, cuttoolstripmenuitem, κ.λ.π. Κατ ουσίαν το αντικείμενο τύπου MenuStrip αποτελεί ένα container control για τις επιλογές που είναι τύπου ToolStripMenuItem.

Στην επάνω δεξιά γωνία του MenuStrip υπάρχει ένα βελάκι που αν το κάνουμε κλικ εμφανίζει ένα popup μενού με επιλογές και λειτουργίες που αφορούν το μενού. Embed in ToolStripContainer: Ενσωματώνει το μενού μέσα σε ένα ειδικό container control που ονομάζεται MenuStrip Container. Το container αυτό μπορεί να εμφανίζει τέσσερα panel (πάνω, κάτω, δεξιά και αριστερά) καθώς και ένα panel στην μέση, και μπορεί να καταλαμβάνει ολόκληρο το client area της φόρμας ή και όχι (όπως στην φωτογραφία στα δεξιά)

Insert Standard Items Εισάγει στο menu ορισμένες standard επιλογές που είναι: File Edit Tools Help με τις συνηθισμένες υποεπιλογές τους και με εικονίδια. RenderMode Καθορίζει τον τρόπο εμφάνισης των μενού Dock Καθορίζει την θέση πρόσδεσης του μενού (πάνω, κάτω, δεξιά, αριστερά, κέντρο και none) GripStyle Καθορίζει αν θα φαίνεται η λαβή για σύρσιμο του μενού σε άλλη θέση

Edit Items : Εμφανίζει ένα διάλογο και μας επιτρέπει να επεξεργαστούμε τις επιλογές του μενού και τις ιδιότητές τους

BackColor: το χρώμα του υπόβαθρου BackgroundImage: καθορίζει μία εικόνα που θα εμφανιστεί στο υπόβαθρο του μενού. Font: το font των γραμμάτων του μενού GripStyle: (Hidden/Visible) καθορίζει αν η λαβή συρσίματος του μενού θα φαίνεται ή όχι RenderMode: καθορίζει το στυλ εμφάνισης. TextDirection : καθορίζει την διάταξη των επιλογών του μενού (Horizontal, Vertical90, Vertical270) ShowItemToolTips: καθορίζει αν θα φαίνονται balloon βοήθειας όταν πηγαίνει ο δείκτης πάνω από τις επιλογές του μενού. Items: Collection που περιλαμβάνει όλες τις υποεπιλογές του μενού. Dock: η θέση αγκίστρωσης του μενού.

Κάθε υποεπιλογή του μενού αποτελεί ένα ToolStripMenuItem Βέβαια σε κάθε slot ενός μενού μας επιτρέπεται να τοποθετήσουμε ένα από τέσσερα διαφορετικά αντικείμενα: 1. MenuItem 2. ComboBox 3. Separator 4. TextBox Τα MenuItems επιλέγονται είτε με το ποντίκι, είτε με τα πλήκτρα του κέρσορα, είτε με το πρώτο γράμμα της κάθε επιλογής. Αν θέλουμε το «ενεργό» γράμμα να μην είναι το πρώτο, τότε θα πρέπει στο Text του κάθε MenuItem να βάλουμε τον χαρακτήρα & μπροστά από το γράμμα που θέλουμε να είναι ενεργό, το οποίο και θα υπογραμμιστεί.

BackColor: το χρώμα του υπόβαθρου BackgroundImage: καθορίζει μία εικόνα που θα εμφανιστεί στο υπόβαθρο του MenuItem. Checked: (true/false) καθορίζει αν το MenuItem θα είναι επιλεγμένο ή όχι. CheckState: (Unchecked/ Checked/ Indetermined) καθορίζει την κατάσταση επιλογής του MenuItem. DisplayStyle: (None/ Text/ Image/ ImageAnd Text) καθορίζει την εμφάνιση του MenuItem Font: το font των γραμμάτων του μενού ForeColor : το χρώμα των γραμμάτων Image : η εικόνα που συνοδεύει την επιλογή TextDirection : καθορίζει την διάταξη της επιλογής (Inherit, Horizontal, Vertical90, Vertical270)

AutoSize: (true/false) καθορίζει αν το MenuItem θα έχει στάνταρ μέγεθος ή καθοριζόμενο. AutoToolTip: (true/false) καθορίζει αν το balloon βοήθειας θα εμφανίζει το Text (true) ή το ToolTipText (false) CheckOnClick : καθορίζει αν η επιλογή θα τσεκάρεται και θα ξε-τσεκάρεται με το κλικ του ποντικιού. DoubleClickEnabled: καθορίζει αν με διπλό κλικ το MenuItem θα ενεργοποιείται. Enabled: (true/false) Καθορίζει αν το MenuItem είναι ενεργοποιημένο ή όχι (γκρί). ToolTipText: το κείμενο ωοήθειας που εμφανίζεται σε balloon όταν πηγαίνει το ποντίκι πάνω από την επιλογή. ShortcutKeys: Συνδυασμός πλήκτρων για την επιλογή του MenuItem. ShowShortcutKeys: (true/false) Καθορίζει αν θα εμφανίζεται ο συνδυασμός πλήκτρων για την επιλογή του MenuItem.

Οι επιλογές του μενού μπορούν δυναμικά κατά την διάρκεια εκτέλεσης του προγράμματος να: o Εμφανίζονται ή να εξαφανίζονται με την ιδιότητα Visible. o Ενεργοποιούνται ή να απενεργοποιούνται (γκρί) με την ιδιότητα Enabled. o Να τσεκάρονται ή να ξε-τσεκάρονται με την ιδιότητα Checked. o Να αλλάζει το κείμενο της επιλογής. Για να γράψουμε κώδικα για μία επιλογή του μενού (ToolStripMenuItem) αρκεί να πατήσουμε διπλό κλικ επάνω του, οπότε δημιουργείται αυτόματα μία ρουτίνα διαχείρισης του Click Event για την συγκεκριμένη επιλογή: private: System::Void newtoolstripmenuitem_click(system::object^ {.. }

Για να δημιουργήσουμε ένα Αναδυόμενο Μενού (Popup ή Context Menu) θα πρέπει να ενσωματώσουμε στην φόρμα ένα control τύπου ContextMenuStrip. Το αντικείμενο δεν εμφανίζεται πάνω στην φόρμα αλλά το όνομά του εμφανίζεται σε μία γκρι λωρίδα στο κάτω μέρος του κεντρικού παραθύρου του Visual Studio. Από εκεί μπορούμε να τα επιλέξουμε, οπότε και εμφανίζονται σε design mode, οπότε και μπορούμε να καθορίσουμε τις επιλογές τους. Το ContextMenuStrip αποτελεί container για πολλαπλά αντικείμενα τύπου ToolStripMenuItem. Για το ContextMenuStrip ισχύουν περίπου τα ίδια όπως και στο MenuStrip.

Για να συνδέσουμε ένα Control της φόρμας με ένα ContextMenu έτσι ώστε αυτό να εμφανίζεται όταν κάνουμε δεξί κλικ επάνω στο Control, αρκεί να βάλουμε στην ιδιότητα ContextMenuStrip του Control το όνομα του συγκεκριμένου ContextMenuStrip όπως για παράδειγμα contextmenustrip1. Είναι επίσης δυνατόν να συνυπάρχουν πολλά Context Menus σε μία φόρμα ακόμα και τόσα όσα είναι τα Controls και να συνδέεται το κάθε Control με το αντίστοιχο ContextMenu. Υπάρχει όμως και η δυνατότητα δύο ή περισσότερα Controls να συνδέονται με το ίδιο ContextMenu. textbox1 textbox2 combobox1 combobox2 contextmenustrip1 contextmenustrip2 contextmenustrip3

Στην επάνω δεξιά γωνία του ονόματος του ContextMenuStrip υπάρχει ένα βελάκι που αν το κάνουμε κλικ εμφανίζει ένα popup μενού με επιλογές και λειτουργίες που αφορούν το ContextMenu. RenderMode Καθορίζει τον τρόπο εμφάνισης των μενού ShowImageMargin Εμφανίζει ή εξαφανίζει την λωρίδα εμφάνισης εικονιδίων του μενού. ShowCheckMargin Εμφανίζει ή εξαφανίζει την λωρίδα εμφάνισης των checkmarks επιλογής των επιλογών του μενού. EditItems Εμφανίζει ένα διάλογο και μας επιτρέπει να επεξεργαστούμε τις επιλογές του μενού και τις ιδιότητές τους

Το ContextMenuStrip έχει σχεδόν τις ίδιες ιδιότητες με το MenuStrip όπως : BackColor: το χρώμα του υπόβαθρου BackgroundImage: καθορίζει μία εικόνα που θα εμφανιστεί στο υπόβαθρο του μενού. Font: το font των γραμμάτων του μενού RenderMode: καθορίζει το στυλ εμφάνισης. ShowItemToolTips: καθορίζει αν θα φαίνονται balloon βοήθειας όταν πηγαίνει ο δείκτης πάνω από τις επιλογές του μενού. Items: Collection που περιλαμβάνει όλες τις υποεπιλογές του μενού. Αλλά και μερικές επιπλέον όπως DropShadowEnabled: (true/false) καθορίζει αν θα εμφανίζεται σκιά κάτω από το παράθυρο του ContextMenu. ShowImageMargin : Εμφανίζει ή εξαφανίζει την λωρίδα εμφάνισης εικονιδίων του μενού. ShowCheckMargin: Εμφανίζει ή εξαφανίζει την λωρίδα εμφάνισης των checkmarks επιλογής των επιλογών του μενού.

Κληρονομείται από την κλάση System::Windows:: Forms::RichTextBox. Επιτρέπει την εισαγωγή κειμένου μίας ή πολλαπλών γραμμών όπως το κοινό TextBox, αλλά έχει δυνατότητες formatting των χαρακτήρων και των παραγράφων του κειμένου. Επιτρέπει το φόρτωμα κειμένου από αρχείο τύπου.txt (ASCII text) ή.rtf (Rich Text Format), όπως και σώσιμο σε αρχεία.txt και.rtf Επιτρέπει την επιλεκτική αλλαγή font σε τμήμα του κειμένου, όπως και την αλλαγή του μεγέθους των γραμμάτων, του χρώματος των γραμμάτων, όπως και του τρόπου εμφάνισης (bold, italic, underline, ) Επιτρέπει την μορφοποίηση των παραγράφων σε bullets, την αλλαγή περιθωρίων των παραγράφων δεξιά και αριστερά, όπως και τον καθορισμό κρεμασμένης παραγράφου (Hanging Indent). Δεν έχει όριο στο πλήθος των χαρακτήρων που μπορεί να εμφανίσει. Να σημειωθεί ότι το απλό TextBox έχει όριο τους 64Κ χαρακτήρες. Μπορεί τυπικά να εμφανίσει κείμενο όπως ένας επεξεργαστής κειμένου (π.χ. Microsoft Word)

Properties Lines : (array<string^> ^ Lines) πίνακας από Strings που περιέχει τις γραμμές του RichTextBox. Μέσω της ιδιότητας αυτής μπορώ να διαβάσω (read) τις γραμμές του RichTextBox σε μορφή πίνακα, αλλά με ανάθεση πίνακα στην ιδιότητα Lines μπορώ να επανα-καθορίσω τις γραμμές που εμφανίζονται μέσα σε ένα RichTextBox. ScrollBars: (None/ Horizontal/ Vertical/ Both/ ForcedHorizontal/ ForcedVertical/ ForcedBoth) εισάγει scroll bars για την ολίσθηση πάνωκάτω και δεξιά-αριστερά. Οι επιλογές Forcedxxx εμφανίζουν τα Scrollbars είτε υπάρχει λόγος είτε όχι. Για να εμφανιστούν τα οριζόντια scrollbars πρέπει η ιδιότητα WordWrap να είναι false. Text: το κείμενο που περιέχει το TextBox. BulletIndent: (int) καθορίζει την εσοχή των παραγράφων που φορμάρονται ως bullets. DetectUrls: (true/false) αναγνωρίζει αυτόματα τις διευθύνσεις internet (URLs) και τις φρομάρει αυτόματα. EnableAutoDragDrop: (true/false) ενεργοποιεί την δυνατότητα των λειτουργιών drag & drop (σύρε και άσε) μέσα στο κείμενο.

Properties MultiLine: (true/false) καθορίζει κείμενο πολλαπλών γραμμών. RightMargin: Το δεξί περιθώριο των παραγράφων WordWrap : (true/false) καθορίζει αν οι γραμμές θα αναδιπλώνονται στο τέλος κάθε γραμμής ή όχι. ZoomFactor: (float) αριθμός που εκφράζει τον λόγο μεγέθυνσης του κειμένου του RichTextBox. Κυμαίνεται από 1/64 (0.015625) έως 64. Η τιμή 1 σημαίνει ότι δεν εφαρμόζεται μεγέθυνση στο control. Επενεργεί καλύτερα όταν το font των γραμμάτων είναι TrueType. SelectionFont : (System.Drawing::Font) καθορίζει το font του επιλεγμένου κειμένου SelectionColor/SelectionBackColor : (System.Drawing::Color) καθορίζει το χρώμα του επιλεγμένου κειμένου SelectionBullet : (true/false) καθορίζει εάν το επιλεγμένο κείμενο θα φορμαριστεί ως bullets SelectionIndent : (int) η αριστερή εσοχή της παραγράφου του επιλεγμένου κειμένου SelectionRightIndent : (int) η δεξιά εσοχή της παραγράφου του επιλεγμένου κειμένου

Properties SelectionHangingIndent : (int) η εσοχή της κρεμασμένης παραγράφου του επιλεγμένου κειμένου Methods Clear() : σβήνει ολόκληρο το κείμενο του RichTextBox. Cut(), Copy(), Paste() εργασίες με το Clipboard (επιλεγμένο κείμενο) Undo()/Redo() ματαιώνει τη προηγούμενη ενέργεια επεξεργασίας AppendText() προσθέτει κείμενο στο τέλος Find(String) : ψάχνει στο control για την εύρεση του String LoadFile(String) : φορτώνει κείμενο από το αρχείο.rtf που το όνομά του δίνεται ως παράμετρος (String) LoadFile(String, RichTextBoxStreamType) : φορτώνει κείμενο από αρχείο.txt ή.rtf που το όνομά του δίνεται ως παράμετρος (String). Το είδος του αρχείου καθορίζεται από την δεύτερη παράμετρο που μπορεί να έχει τις εξής τιμές: RichTextBoxStreamType::PlainText φορτώνει αρχείο.txt RichTextBoxStreamType::RichText φορτώνει αρχείο.rtf RichTextBoxStreamType::UnicodePlainText φορτώνει.txt unicode

Methods SaveFile(String) : αποθηκεύει το κείμενο του control σε αρχείο.rtf που το όνομά του δίνεται ως παράμετρος (String). SaveFile(String, RichTextBoxStreamType) : σώζει κείμενο σε αρχείο.txt ή.rtf που το όνομά του δίνεται ως παράμετρος (String). Το είδος του αρχείου καθορίζεται από την δεύτερη παράμετρο που μπορεί να έχει τις εξής τιμές: RichTextBoxStreamType::PlainText σώζει αρχείο.txt RichTextBoxStreamType::RichNoOleObjects σώζει αρχείο.rtf αλλά αφήνει κενά στη θέση των OLE αντικειμένων RichTextBoxStreamType::RichText σώζει αρχείο.rtf RichTextBoxStreamType::TextTextOleObjects σώζει αρχείο.txt και αναπαριστά με κείμενο τα OLE αντικείμενα RichTextBoxStreamType::UnicodePlainText σώζει.txt unicode SelectAll() : επιλέγει ολόκληρο το κείμενο του TextBox Select(start,length): επιλέγει ένα τμήμα του κειμένου στο control. Events TextChanged, Enter, Leave, KeyDown, KeyPress, KeyUp

Η άσκηση αυτή αποτελεί έναν απλό επεξεργαστή κειμένου με κεντρικό μενού και context μενού και δυνατότητα load και save. Εισάγουμε ένα RichTextBox για το κείμενο, ένα Label και ένα TextBox για το όνομα του αρχείου. Καθορίζουμε την ιδιότητα Multiline του RichTextBox σε true, την ιδιότητα WordWrap σε false, την ScrollBars σε Both και την EnableAutoDragDrop σε true. Για να μεταβάλλεται το μέγεθος του RichTextBox αυτόματα μαζί με την φόρμα θα πρέπει να καθορίσουμε στην ιδιότητα Anchor τις τιμές (Left, Top, Right, Bottom). Για να μεταβάλλεται το μέγεθος της φόρμας αρκεί η ιδιότητα FormBorderStyle να έχει τη τιμή Sizable που είναι και η default τιμή για τις φόρμες.

Εισάγουμε ένα MenuStrip control (κυρίως μενού) και εισάγουμε σε αυτό τις στάνταρ επιλογές (Insert Standard Items). Διαμορφώνουμε το μενού ώστε να μείνουν οι εξής επιλογές: File : New, Open Save, Exit Edit : Undo, Redo, Cut, Copy, Paste, Select All, Clear Tools : ASCII Text, RTF Text Help: About Στην επιλογή Tools: ASCII Text καθορίζουμε την ιδιότητα Checked σε true. Εισάγουμε στη κλάση Form1 το εξής data member: public: static RichTextBoxStreamType filetype = RichTextBoxStreamType :: PlainText; Η μεταβλητή αυτή θα αλλάζει από τις επιλογές του μενού Tools : ASCII Text, RTF Text και θα καθορίζει αν το φορμά του αρχείου κειμένου που θα σώζεται ή θα φορτώνεται θα είναι ASCII text (.txt) ή Rich Text Format (.rtf)

Γράφουμε κώδικα για τους event handlers των επιλογών του μενού: private: System::Void newtoolstripmenuitem_click(system::object^ { richtextbox1->clear(); textbox1->clear(); } private: System::Void opentoolstripmenuitem_click(system::object^ { if (! String::IsNullOrEmpty(textBox1->Text->Trim()) ) richtextbox1->loadfile(textbox1->text, filetype); else MessageBox::Show("Εισάγετε όνομα αρχείου!"); } private: System::Void savetoolstripmenuitem_click(system::object^ { if (! String::IsNullOrEmpty(textBox1->Text->Trim()) ) richtextbox1->savefile(textbox1->text, filetype); else MessageBox::Show("Εισάγετε όνομα αρχείου!"); }

private: System::Void exittoolstripmenuitem_click(system::object^ { this->close(); } private: System::Void undotoolstripmenuitem_click(system::object^ { richtextbox1->undo(); } private: System::Void redotoolstripmenuitem_click(system::object^ { richtextbox1->redo(); } private: System::Void cuttoolstripmenuitem_click(system::object^ { richtextbox1->cut(); } private: System::Void copytoolstripmenuitem_click(system::object^ { richtextbox1->copy(); }

private: System::Void pastetoolstripmenuitem_click(system::object^ { richtextbox1->paste(); } private: System::Void selectalltoolstripmenuitem_click(system::object^ { richtextbox1->selectall(); } private: System::Void cleartoolstripmenuitem_click(system::object^ { richtextbox1->clear(); } private: System::Void asciitexttoolstripmenuitem_click (System::Object^ { asciitexttoolstripmenuitem->checked=true; rtftexttoolstripmenuitem->checked=false; filetype=richtextboxstreamtype::plaintext; }

private: System::Void rtftexttoolstripmenuitem_click(system::object^ { asciitexttoolstripmenuitem->checked=false; rtftexttoolstripmenuitem->checked=true; filetype=richtextboxstreamtype::richtext; } Δημιουργούμε νέα φόρμα με όνομα Form2 και εισάγουμε σε αυτήν ένα Label, ένα PictureBox και ένα Button. Φορτώνουμε μία εικόνα στο PictureBox. Καθορίζουμε την ιδιότητα DialogResult σε OK ώστε να κλείνει την φόρμα. Στην Form1 κάνουμε #include Form2.h Στον event handler της επιλογής Help-> About γράφουμε τον ακόλουθο κώδικα: private: System::Void abouttoolstripmenuitem1_click(system::object^ { Form2 ^ frm2=gcnew Form2; frm2->showdialog(); }

Για την υλοποίηση του Context Menu εισάγουμε στην Form1 ένα ContextMenuStrip και καθορίζουμε να έχει τέσσερις επιλογές : Cut, Copy, Paste, Clear Για την σύνδεση του Context Menu με το RichTextBox θα πρέπει να βάλουμε στην ιδιότητα ContextMenuStrip του RichTextBox το όνομα του ContextMenuStrip π.χ. contextmenustrip1. Επειδή οι επιλογές του Context Menu υπάρχουν και στο κυρίως μενού, αρκεί κάθε Click event της κάθε επιλογής να το συνδέσουμε με τον αντίστοιχο έτοιμο event handler της επιλογής του κυρίως μενού. Για παράδειγμα στο Click event της επιλογής Cut του ContextMenu θα συνδέσουμε τον event handler cuttoolstripmenuitem_click, για την επιλογή Copy τον copytoolstripmenuitem_click κ.λ.π.