1 working with menus and dialog boxes. 2 objectives you will be able to create and edit menus for...

50
1 Working with Menus and Dialog Boxes

Upload: loraine-jennings

Post on 30-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

1

Working with Menus and Dialog Boxes

Page 2: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

2

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.

Page 3: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

3

The Schedule Viewer Program

Existing program in Downloads area. http://www.cse.usf.edu/~turnerr/Software_Systems_Develo

pment/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.

Page 4: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

4

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

Page 5: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

5

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

Page 6: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

6

Schedule Viewer

Page 7: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

7

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

Page 8: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

8

Program Running

Page 9: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

9

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.

Page 10: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

10

How to Create a Menu

Design Time Normal case Menu Editor in Visual Studio .NET

Run Time Program can build menu dynamically

Page 11: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

11

Creating a Menu at Design Time

Open Form1 [Design] View Toolbox Expand “Menus & Toolbars”

section Drag the MenuStrip to the form.

Page 12: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

12

Add MenuStrip to Form

Page 13: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

13

Add MenuStrip to Form

Menu component appears here (in “component tray”)

Page 14: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

14

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.

Page 15: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

Working with the MenuStrip

Menu template appears here

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

Page 16: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

16

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.

Page 17: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

Working with the MenuStrip

Page 18: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

18

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.

Page 19: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

19

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

Page 20: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

20

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.

Page 21: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

Menu Events

Double click here.

Page 22: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

22

How to Provide a “Click” Function

This appears in the editor window:

private void openToolStripMenuItem_Click(object sender, EventArgs e)

{

}

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

You normally won’t need to use these arguments.

Page 23: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

23

Add Open Event Handler

Fill in a dummy event handler for now:

MessageBox.Show("Open command");

Page 24: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

24

Build and start

Menu should appear. Open should display message box.

Page 25: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

25

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!

Page 26: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

26

Initial Form

Page 27: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

27

After Open command

Page 28: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

28

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.

Page 29: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

29

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.

Page 30: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

30

Setting Menu Item Properties

Right click on the menu component in the component tray

Select “Properties” on the pop up menu.

Page 31: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

31

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”.

Page 32: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

32

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.

Page 33: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

33

Setting Properies of Open

Right click here.

Then click here.

Properties window for the menu item appears.

Page 34: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

34

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

Page 35: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

Click here to get Dropdown List of available shortcut keys.

Page 36: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

Scroll down (if necessary) and select name of desired shortcut key.

Page 37: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

37

Shortcut Keys

Page 38: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

38

Shortcut Keys

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

Page 39: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

39

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.

Page 40: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

40

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.

Page 41: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

Adding the Exit Command

Double click on Exit command to add event handler.

Page 42: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

42

Example: Exit Command

private void exitToolStripMenuItem_Click(

object sender, EventArgs e)

{

this.Close();

}

Try it!

End of Section

Page 43: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

43

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.

Page 44: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

44

Adding an OpenFileDialog

View > Toolbox Expand Dialogs section Drag OpenFileDialog to form

Page 45: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

Adding an OpenFileDialog

Page 46: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

46

Adding an OpenFileDialog

openFileDialog1 appears in the component tray.

Page 47: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

47

Add to import_schedulevoid 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;

}

Page 48: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

Being More User-Friendly

Page 49: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

49

New Open File Dialog

Page 50: 1 Working with Menus and Dialog Boxes. 2 Objectives You will be able to Create and edit menus for Windows Forms applications. Write code to handle menu

50

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.