Title: CIS162AD C
1CIS162AD - C
- Methods, Menus, and Dialog Boxes
- 05_methods_menus.ppt
2Overview of Topics
- Top-Down Design
- Built-in Methods
- Black Box Analogy
- Programmer-Defined Methods
- Methods Signature Overloading
- Pass-by-value Arguments
- Menu Designer
- Context Menus (right-click)
- Common Dialog Boxes
3Top-Down Design
- A design method where the major task to be
accomplished is divided into subtasks. - Divide-and-Conquer
- Stepwise Refinement
- The goal is to write a modular program that is
easier to read and maintain.
4Top-Down Design - Analogy
- A design method where the major task to be
accomplished is divided into subtasks. - Major Task clean house
- Subtasks dust, vacuum, sweep, mop
- Programming example.
- Major Task CS5 Sales Calculator
- Subtasks input qty, pricecalculate sales
tax, shipping, subtotal, etcdisplay total bill
5Subtasks
- Each subtask should perform a single well-defined
task. - Each subtask may produce some result.
- Treat them as small programs.
- Input -gt Process -gt Output
- These subtasks can be used at different times in
one program or placed in a library and used by
many different programs. - The int.Parse method is a complicated task that
converts strings to numbres, and is used by many
different programs.
6Top-Down Design Implementation
- Top-Down design is implemented using methods.
- A method is a collection of statements that are
grouped together to perform a specific operation. - Methods have inputs called arguments.
- Methods can be defined to return no value, but if
it does return a value, only one value can be
returned through the return statement. - Methods can return more than one value through
call-by-reference arguments (more on this later).
7Programmer-Defined Methods
- Before coding some programmer-defined methods,
lets look at some built-in methods a little
closer. - It will help understand what we are trying to
develop if we look at how methods are used.
8Built-in Methods
- They are like small programs.
- They have their own input process output.
- They can have one or more inputs.
- But methods can only return one output.
- As programmers, we dont get to see the code
(process) of built-in methods. - The process is like a black box
9Black Box Analogy
- Many methods are designed as black boxes.
- This means that as programmers we should not be
concerned how the methods performs its
processing. - We only need to know the inputs, outputs, and
what it does. - We know what is required to use it, but we dont
know how it does its calculations. - Develop your own methods with the Black Box
Analogy in mind.
10Convert Text to Integer int.Parse
- Convert Text to Integer method is named
int.Parse. - The documentation for int.Parse states the value
that will be returned, method name, and the type
and number of arguments. intNumber
int.Parse(String) returnedValue MethodName
(arguments) - Int.Parse takes one argument that is a String.
- The method is called using the following
syntaxIf txtQuantity.Text contains 3 then
the function call intNumber
int.Parse(txtQuantity.Text)would return a value
of 3 into intNumber.
11Method Call
- We issue a method call when we use it.
- Processing control is passed to the method until
it completes its task and returns control back to
the calling method. - Most methods return a value back,but only one
value can be returnedthrough the return
statement.
12Round Method
- Methods can only return one value, but may have
more than one argument.decWholeNum
decimal.Round(decNum, 0) - The value returned is a whole number with no
digits after the decimal point.
13Methods Signature Overloading
- Method overloading occurs when more than one
method with the same name is defined, but differ
in the parameter list.MessageBox.Show(TextMessag
e)MessageBox.Show(TextMessage,
TitleBar)MessageBox.Show(TextMessage, TitleBar,
ButtonType)MessageBox.Show(TextMessage,
TitleBar, ButtonsType, Icon) - Each methods signature is unique and consists
of - Method name
- The number, data types, and order of its
parameters - Parameters can also be modified with the keywords
ref and out (These keywords are covered in next
powerpoint presentation) - The signature does NOT include the data type of
the returned valueand the names used to identify
the parameters.
14Small Programs
- Think of each method as a small program with
input, process, and output steps. Output
lt Process lt Input - returnedValue MethodName (arguments)
- intNumber int.Parse(String)
15Programmer-Defined Methods
- The single value that a method returns can be a
string or numeric. - Two Components 1. Method Definition 2. Method
Call
16Function Definition - Syntax
- Syntaxprivate dataType MethodName(arguments)
statement(s) return expression - dataType is where we specify what type of value
is being returned, string or numeric. - Use the return statement to return the value.
- Variables that will be used to store the values
sent into the method are listed in parentheses as
arguments.
17Method Definition - Example
- private decimal calcExtendedPrice(int intQty,
decimal decPrice) decimal decExtendedPrice
decExtendedPrice intQty decPrice return
decExtendedPrice - decimal is the data type of the value being
returned. - calcExtendedPrice is the Method Name.
- intQty and decPrice are the arguments passed to
method. - The signature of this method is
calcExtendedPrice(int, decimal)
18Return Statement
- Return statement returns the value back to the
variable listed to the left of the equal sign on
the call statement. - Return statement returns processing control back
to the calling procedure. - Only one value can be returned.
- Variable data type of returned value must match
the return type specified in heading.
19Multiple Returns
- A method may be defined with multiple Return
statements. - The first Return statement executed returns the
value and returns processing control back to the
calling procedure. - private decimal calcExtendedPrice(int intQty,
decimal decPrice if (intQty lt 26) return
intQty decPrice else return intQty
(decPrice .95) //5 discount
20Single Return Preferred
- Although methods can be coded using multiple
Return statements, one Return statement is
preferred. - Having multiple Returns in complex procedure can
be difficult to maintain and debug. - private decimal calcExtendedPrice(int intQty,
decimal decPrice ) decimal decExtendedPrice
if (intQty lt 26) decExtendedPrice intQty
decPrice else decExtendedPrice intQty
(decPrice .95) //5 discount return
decExtendedPrice
21A Method without a Return
- If a method that is supposed to return a value
does not contain a return statement, then the
compiler will generate a syntax error. - private decimal calcExtendedPrice(int intQty,
decimal decPrice ) decimal decExtendedPrice
if (intQty lt 26) decExtendedPrice intQty
decPrice else decExtendedPrice intQty
(decPrice .95) //return decExtendedPrice
//commented out syntax error
22Method Call
- The method call is issued when the method is used
in another method.private void
btnCalculate_Click() intQty
int.Parse(txtQuantity.Text) decPrice
decimal.Parse(txtPrice.Text) decExtendedPrice
calcExtendedPrice(intQty, decPrice)
23Local Variables
- Variables are local to the method in which they
are defined. - Variables defined in a particular method are
assigned their own memory and can only be
referenced in that method. - Variables defined in calcExtendedPrice( ) are
assigned their own memory and can only be
referenced in calcExtendedPrice( ). - Different methods cannot see or reference each
others variables. - They have separate memory allocations even though
the variable names may be the same.
24Passing Arguments
- private void btnCalculate_Click() int
intQty decimal decPrice, decExtendedPrice
intQty int.Parse(txtQuantity.Text) decPrice
decimal.Parse(txtPrice.Text) decExtendedPrice
calcExtendedPrice(intQty, decPrice) -
- private decimal calcExtendedPrice(int intQty,
decimal decPrice) decimal decExtended decExt
ended intQty decPrice return decExtended
25Declare Variables
26Input Values
27decExtendedPrice calcExtendedPrice(intQty,
decPrice)
Pass-by-Value - Values in variables of
btnCalculate are sent to variables of
calcExtendedPrice.
28Methods Use Local Variables
- private void btnCalculate_Click() int
intQty decimal decPrice, decExtendedPrice
intQty int.Parse(txtQuantity.Text) decPrice
decimal.Parse(txtPrice.Text) decExtendedPrice
calcExtendedPrice(intQty, decPrice) -
- private decimal calcExtendedPrice(int intQty,
decimal decPrice) decimal decExtended decExt
ended intQty decPrice return decExtended
29decExtended intQty decPrice
30Returning Method Values
- private void btnCalculate_Click() int
intQty decimal decPrice, decExtendedPrice
intQty int.Parse(txtQuantity.Text) decPrice
decimal.Parse(txtPrice.Text) decExtendedPrice
calcExtendedPrice(intQty, decPrice) -
- private decimal calcExtendedPrice(int intQty,
decimal decPrice) decimal decExtended decExt
ended intQty decPrice return decExtended
31decExtendedPrice calcExtendedPrice(intQty,
decPrice)
Return statements sends the value to variable on
the left side of the equal sign on the method
call statement.
32Menu Designer
- Plan menu options / paths.
- Add MenuStrip control to component tray.Just
like the ToolTip. - Enter Text for menu item in box labeled Type
Here. - Use ampersands to define control keys.
- Name menu items using menu path and mnu prefix.
- Need to know name so we can tell which menu item
was selected in the code.private void
mnuFileExit_Click(object sender, System.EventArgs
e) this.Close()
33Menu Designer Example
34Context Menus
- Context menus are shortcut menus that pop up with
a right-click. - Add a ContextMenuStrip control to the component
tray. - Use the Menu Designer to add items.
- More than one context menu can be added.
- In order to make the context menu available to
users, it must be assigned to the form or control
by using the ContextMenuStrip property. - See the images on the next two slides
35Context Menu Example
36Assign Context Menu to Form
37Common Dialog Boxes
- Common dialog boxes available
- FontDialog
- ColorDialog
- OpenFileDialog
- SaveFileDialog
- PrintDialog
- PrintPreviewDialog
38Common Dialog Boxes
- The Common Dialog Box controls can save
programmers the time and trouble of designing
custom dialog boxes for common purposes. - Add a common dialog box control to the component
tray. - The default Name of the Dialog maybe used, unless
more than one is being used in the
program.. colorDialog1, fontDialog, etc. - You wont see anything in design time, because
the dialog box is displayed at run-time with
code. - Use the ShowDialog method to display a dialog
box. fontDialog1.ShowDialog( ) colorDialog1.Sh
owDialog( )
39FontDialog Box
40Using Selected Options
- Dialog Boxes are objects themselves with
properties. - The values selected by users in a font or color
dialog box are stored in the dialog boxs
properties. - The values in the dialog boxes selected by users
need to be applied to controls on the
form. lblGrandTotal.Font fontDialog1.Font lb
lGrandTotalForeColor colorDialog1.Color
Note property on Labels and Textboxes is
ForeColor. - Before showing a dialog box, you should assign to
it the current value selected just incase users
click on Cancel. fontDialog1.Font
lblGrandTotal.Font
41Method Example
- private void mnuEditFont_Click(object sender,
System.EventArgs e) -
- //Initialize the font in the dialog box to the
current font - fontDialog1.Font lblGrandTotal.Font
- //Display dialog box so user can pick a font
- fontDialog1.ShowDialog()
- //Apply the font chosen to the Totals section
- lblGrandTotal.Font fontDialog1.Font
- lblNumberOfOrders.Font fontDialog1.Font
- lblAverageOrder.Font fontDialog1.Font
-
42Summary
- Top-Down Design
- Built-in Methods
- Black Box Analogy
- Programmer-Defined Methods
- Methods Signature Overloading
- Menu Designer
- Context Menus
- Common Dialog Boxes