Docstoc

Working with Menus and Dialog Boxes

Document Sample
Working with Menus and Dialog Boxes Powered By Docstoc
					Working with Menus and Dialog Boxes




                                      1
              Objectives

You will be able to
 Create and edit menus for Windows

  Forms applications.
 Write code to handle menu commands.

 Use a standard Open File dialog to

  permit a user to select a file to be
  opened.



                                         2
           The Schedule Viewer Program

   Existing program in Downloads area.
   http://www.cse.usf.edu/~turnerr/Software_Systems_Development/
    Downloads/2011_02_17_Schedule_Viewer/



   Reads a CSV file consisting of schedule
    entries and displays the schedule.
   File path is hard coded.
       Program opens the file on startup.



                                                               3
          The Schedule Viewer Program

   We will add a menu.
       Traditional Windows menu.
       Includes an Open command.


   We will also add an Open File dialog
       Permit the user to select the file to be
        viewed.
       Traditional Windows Look and Feel


                                                   4
                                    Download


   There is a zipped project folder and a data file
    in the Downloads area of the class web site:
        http://www.cse.usf.edu/~turnerr/Software_Systems_Development/
         Downloads/2011_02_17_Schedule_Viewer/
             Schedule_Viewer.zip


   Also, download the CSV schedule files.

   Put the csv files into a convenient folder and set the path string
    in Form1.cs to match the Spring 2010.

   Build and run the project

                                                                         5
Schedule Viewer




                  6
        Tighten Up Some More Columns


cols[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
cols[3].Width = 30;   // Credit Hours
cols[6].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
cols[6].Width = 30;   // Seats Open




                                                              7
Program Running




                  8
                     Menu Conventions

   Windows programs often have a menu bar.
   Follow a pattern in their menus
             File
                    New
                    Open
                    Save
                    Print
                    Exit
             Edit
                    Copy
                    Paste


   Users are familiar with this pattern.     9
              How to Create a Menu

   Design Time
       Normal case
       Menu Editor in Visual Studio .NET

   Run Time
       Program can build menu dynamically




                                             10
      Creating a Menu at Design Time


   Open Form1 [Design]
   View Toolbox
   Expand “Menus & Toolbars” section
   Drag the MenuStrip to the form.




                                        11
Add MenuStrip to Form




                        12
Add MenuStrip to Form




   Menu component
   appears here (in
   “component tray”)




                        13
            The Component Tray

   Represents components that do not
    otherwise provide a visible surface at
    design time.
   Provides a way to access and set the
    properties of those components at
    design time.
   Right click on control in component tray
    and select “Properties” to view and set
    its properties.
                                             14
Working with the MenuStrip



      Menu template
      appears here

          Type the menu
          heading here.
          (e.g., &File)
           Working with the MenuStrip

   A menu strip template appears at the
    top of the design surface.
       If not, click on menuStrip1 in the
        component tray.
       May need to expand the grey strip just
        below the title bar.


   Type &File in the “Type Here” box
   Type &Open in the next box that
    appears under the first one.
                                                 16
Working with the MenuStrip
                         Why “&”

   The “&” in front of a letter in a menu caption
    defines a key to open that menu.
   At runtime, the F in the menu caption will be
    underlined as a cue to the user
   The user can type ALT+F to open the menu.
       Same effect as clicking on the caption.


   Holding down ALT, the user can type O to
    select the Open command.
       Same effect as clicking on the command.


                                                  18
                   Menu Events

   There are a lot of menu events
       See Events in Properties window.
       You can write code to handle any of these
        events.
       Normally you only need to be concerned
        with one of them: Click




                                                    19
      How to Provide a “Click” Function

   In designer mode, click on the menu
    caption. (e.g., File)
   The menu drops down.
   Double click on the menu item.
   Visual Studio creates a stub for the Click
    function for that item and takes you to
    that point in the code window.

                                            20
              Menu Events




Double click here.
                How to Provide a “Click” Function



This appears in the editor window:
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{

}                                               You normally won’t need to
                                                use these arguments.



                  Add your code to handle the
                  “Open” command here.




                                                                             22
         Add Open Event Handler

   Fill in a dummy event handler for now:
     MessageBox.Show("Open command");




                                             23
              Build and start

   Menu should appear.
   Open should display message box.




                                       24
             Add Code to Handle Open Command


   Modify the program to open
    c:\schedule_2011_fall.csv and display
    the schedule when the user clicks Open

   Move the call to import_schedule() and
    following statements from Form1_Load to
    openToolStripMenuItem_Click
       replacing MessageBox.Show()

       Try it!
                                               25
Initial Form




               26
After Open command




                     27
         Adding Commands to the Menu

   Continue for as many commands as you
    need for that menu
   Example:
    &Open
    &Save
   To create a separator bar, type a minus
    sign as the command name.



                                          28
           Adding Commands to the Menu

   Continue to add command names and
    separator bars as needed.
   Example:
        &Open
        &Save
        -
        &Print
        -
        E&xit
   Note that these are the conventional access keys for
    commands by these names.


                                                       29
        Setting Menu Item Properties

   Right click on the menu component in
    the component tray
   Select “Properties” on the pop up
    menu.




                                           30
           Setting MenuStrip Properties

   You can change properties of the
    overall MenuStrip in its Properties
    window.

   Example: RightToLeft supports
    languages that write from right to left.
       You won’t need to think about this so long
        as you only use English in your application.
       FYI – Microsoft provides extensive support
        for “internationalization”.
                                                   31
          Setting Menu Item Properties

   Each item on the menu has its own properties.
   Right click on the item to open a context menu, then
    click on Properties.




                                                       32
   Setting Properies of Open

Right click
here.




      Then click
      here.



              Properties window
              for the menu item
              appears.




                                  33
                      Shortcut Keys

   Shortcut Keys vs. Access Keys
       Access Keys, like Alt+X, only work when
        the menu is dropped down.
            When you could click the command


       A “shortcut” key can be used at any time
            Example: Ctrl+S for Save


       You can use the Properties window to
        define shortcut keys.
            Ctrl+O for Open
                                                   34
Click here to get
Dropdown List of
available shortcut
keys.
Scroll down (if necessary)
and select name of desired
shortcut key.
Shortcut Keys




                37
                Shortcut Keys

   At runtime the menu will indicate the
    shortcut key in the form Ctrl+O




                                            38
           How to Disable a Menu Item

   Sometimes a command doesn’t make
    sense.
       e.g. “Print” when there is nothing to print
   Rather than giving an error message,
    make the command unavailable.
   You could remove the item from the
    menu,
       or you could just disable it.
   Set the Enabled property to false.
                                                      39
                 Exit Command

   Let’s add an Exit command to the File
    menu.

   If you have not already done so,
       Type – in command name box to create a
        separator.
       Type E&xit for the Exit command.



                                                 40
          Adding the Exit Command




Double click on Exit command to add event handler.
                    Example: Exit Command


      private void exitToolStripMenuItem_Click(
                               object sender, EventArgs e)
      {
          this.Close();
      }




                           Try it!

End of Section

                                                             42
             Common Dialog Controls

   Permit the user to say where to open or
    save a file by navigating to it.

   Let’s add an Open File dialog for our
    Open command.
       Replace hard coded file path.




                                            43
         Adding an OpenFileDialog

   View > Toolbox
   Expand Dialogs section
   Drag OpenFileDialog to form




                                    44
Adding an OpenFileDialog
     Adding an OpenFileDialog




openFileDialog1 appears in the component tray.   46
             Add to import_schedule
void import_schedule()
{
    StreamReader Reader = null;
    String input_line;
    String file_name;

   Schedule = new List<Schedule_Record>();
   file_name = @"C:\schedule_2011_spring.csv";

   openFileDialog1.FileName = file_name;

   DialogResult result = openFileDialog1.ShowDialog();

   if (result == DialogResult.OK)
   {
       file_name = openFileDialog1.FileName;
   }


                                                         47
Being More User-Friendly
New Open File Dialog




                       49
                  Summary

   Adding a menu bar to a Windows
    program is easy.
   Menu commands work essentially just
    like buttons.

   Common File Dialogs permit uses to
    select files in the customary manner.



                                            50

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:4
posted:2/13/2012
language:
pages:50