Вы находитесь на странице: 1из 29

Menus, Common Dialog

Boxes, Sub Procedures and


Function Procedures

McGraw-Hill

2006 The McGraw-Hill Companies, Inc. All rights reserved.

Objectives
Create menus and submenus for program control
Display and use the Windows common dialog boxes
Create context menus for controls and the form
Write reusable code in sub procedures and function
procedures and call the procedures from other
locations

5-2

Menus
Menu Bar
Contains menus which drop down to display list of
menu items
Can be used in place of or in addition to buttons to
execute a procedure
Menu items are controls with properties and events

Easy to create menus for a Windows form using


the Visual Studio environments Menu Designer
Menus will look and behave like standard
Windows menus
5-3

Defining Menus (1 of 2)
MenuStrip component is
added to a form
MenuStrip is a container to
which ToolStripMenu Items,
ToolStripComboBoxes,
ToolStripSeparators, and
ToolStripTextBoxes can be
added

5-4

Defining Menus

(2 of 2)

The MenuStrip component


appears in the component tray
below the form and the Menu
Designer allows you to begin
typing the text for the menu
items.

5-5

The Text Property


Holds the words that appear on the screen like the
Text property of a button or label
To conform Windows standards the first menus Text
property should be File, with a keyboard access key
Use the ampersand (&) in the text to specify the key to
use for keyboard access

Enter and change the Text property for each menu and
menu item using the Menu Designer or make the
changes in the Text property using the Properties
window
5-6

The Name Property


The File menu item that is added is automatically
named FileToolStripMenuItem
The items are named so well that there wont be a
need to change the Name property of any menu
component
If the Text property is changed for any menu item, the
item is not automatically renamed; it will need to be
renamed

5-7

The MenuStrip Items Collection


ToolStripMenu Items in the collection can be
displayed, reordered, added, deleted using the Items
Collection Editor

5-8

Submenus
Filled triangle to the right
of the menu item
indicates to the user the
existence of a submenu
Create submenus by
moving to the right of a
menu item and typing the
next item's text

5-9

Separator Bars
Used for grouping menu
items according to their
purpose
Visually represented as a
bar across the menu
To create a separator
bar, add a new menu
item and click on its
drop-down arrow

5-10

Menu Properties
Enabled property, True/False-can be set at design or
run time
Checked property, False/True-can be set at design or
run time
Used to indicate that an option is selected

Setting keyboard shortcuts


Select the menu item and In Properties window for menu
item, select the ShortcuKeyst property
Make choice from drop-down list
5-11

Standards for Windows Menus


Follow Windows standards for applications
Include keyboard access keys
Use standards for shortcut keys, if used
Place the File menu at left end of menu bar and end
File menu with the Exit command
Help, if included, is placed at right end of menu bar
File Edit View Format Help

5-12

Common Dialog Boxes


Predefined standard dialog boxes for:
Specifying colors and fonts
Printing, opening, and saving

Add appropriate Common Dialog components to


display the dialog boxes that are provided as
part of the Windows environment
To use a common dialog component, add the
component to the form, placing it in the
component tray

5-13

Common Dialog Tools


Pointer
ColorDialog
FontBrowserDialog
FontDialog
OpenFileDialog
SaveFileDialog

5-14

Displaying a Windows Common Dialog


Box
Use ShowDialog method to display the common dialog
box at run time
ShowDialog only displays the dialog
ColorDialog1.ShowDialog( )
FontDialog1.ShowDialog( )

5-15

Modal versus Modeless Windows


A dialog box is said to be modal - means that it stays
on top of the application and must be responded to
Use the ShowDialog method to display a dialog box-it is
a window displayed modally

Modeless windows do not demand that there is a


response
Use the Show method to display a modeless window

5-16

Using the Information from the Dialog Box


Code must be written to retrieve and use the
choice made by the user in the common dialog
box
Example
Color Dialog displayed
User selects color and clicks OK-the selected
color is stored in a property that can be accessed
Color that is selected is stored in the Color
property and can be assigned to another object
such as a control

titleLabel.BackColor = ColorDialog1.Color
5-17

Setting Initial Values


Before executing the ShowDialog method,
assign the existing values of the object's
properties that will be altered
When the dialog box appears, the current values
will be selected
If the user presses Cancel, property settings for
the objects will remain unchanged
FontDialog1.Font = .subTotalLabel.Font or
ColorDialog1.Color = .BackColor
5-18

Creating Context Menus


Shortcut menus that pop up when you right-click
Items are specific to the component to which user
is pointing, reflecting options available for that
component or situation
A ContextMenuStrip component is added and
appears in the component tray below the form
A context menu does not have a top-level menu,
only menu items
Application can have multiple context menus

5-19

Writing General Procedures


A general procedure is reusable code which can be
called from multiple procedures
Useful for breaking down large sections of code into
smaller units
Two types
Sub Procedure performs actions
Function performs actions AND returns a value (the
return value)

5-20

Passing Arguments to Procedures


Declare variable as local and pass to any called
procedures (can be module level but it makes the
variable visible to all other procedures)
If a sub procedure names an argument, any call to
the procedure must supply the argument
Name of the argument does not have to be the same
in both locations
Number of arguments, sequence and data type must
match
5-21

Creating a New Sub Procedure


In the Editor window enclose the lines of code
with a set of Sub and End Sub statements
To use the Sub Procedure, call it from another
procedure
Code in a Sub Procedure cannot be executed
unless called from another procedure
Private Sub ProcedureName( )
' Statements in the procedure.
End Sub
5-22

Sub Procedure Example


Private Sub SelectColor(incomingColor As Color)
With ColorDialog1
.Color = incomingColor
Sub Procedure
.ShowDialog( )
End With
End Sub
Private Sub changeTitleButtonColor_Click( )
Dim originalColor As Color
originalColor = titleLabel.ForeColor
SelectColor(originalColor)
titleLabel.ForeColor = ColorDialog1.Color
End Sub

Calling
Procedure

5-23

Passing Arguments ByVal or ByRef


ByVal -value
Sends a copy of the arguments value, original cannot be
altered

ByRef -reference
Sends a reference to the memory location where the
original is stored and therefore the procedure may
change the arguments original value can be altered

If not specified arguments are passed by value

5-24

Writing Function Procedures


In the Editor window enclose the lines
of code with Private Function( ) and End
Function statements
Since the procedure returns a value a data type
for the value must be specified
To use the Function, Call it by using it in an
expression
Pass arguments ByVal or ByRef
Private Function FunctionName( ) As Datatype
' Statements to execute.
End Function
5-25

Returning the Result of a Function


To return a value to the calling procedure set up a
return value
The return value will be placed by VB in a variable with
the SAME name as the Function's name
--OR- Use the Return statement to return the value

5-26

Function Example
Private Function Commission(ByVal salesAmountDecimal As Decimal) _
As Decimal
If salesAmountDecimal < 100D Then
Commission = 0D
Function
Else
Commission = 0.15 * salesAmountDecimal
End If
End Function
Private Sub calculateButton_Click( )
Calling
Dim salesDecimal As Decimal
Procedure
salesDecimal = Decimal.Parse(salesTextBox.Text)
commissionLabel.Text = Commission(salesDecimal.ToString("C"))
End Sub
5-27

Functions with Multiple Arguments


Functions can receive one or more arguments (values)
Sequence and data type of arguments in Call must
exactly match arguments in function header
Private Function Payment(ByVal rateDecimal As Decimal, _
ByVal timeDecimal As Decimal, ByVal amountDecimal _
As Decimal) As Decimal
Function
. . .

End Function
paymentLabel.Text = Payment(Decimal.Parse(rateTextBox.Text), _
Decimal.Parse(yearsTextBox.Text), _
Calling Procedure
Decimal.Parse(principalTextBox.Text)).ToString( )
5-28

Breaking Calculations into Smaller Units


Projects with many calculations are easier to
understand and write if calculations are broken into
small units
Each unit should perform one program function or
logic block

5-29

Вам также может понравиться