Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on...

65
Microsoft Visual C# .NET: From Problem Analysis to Program Design 1 Chapter 9 Programming Based on Events Microsoft Visual C# .NET: From Problem Analysis to Program Design

Transcript of Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on...

Page 1: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 1

Chapter 9Programming Based on

Events

Microsoft Visual C# .NET: From Problem Analysis to Program Design

Page 2: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 2

Chapter Objectives• Define, create, and use delegates and examine

their relationship to events

• Explore event-handling procedures in C# by writing and registering event-handler methods

• Create applications that use the ListBox control object to enable multiple selections from a single control

• Contrast ComboBox to ListBox objects by adding both types of controls to an application

Page 3: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 3

Chapter Objectives (continued)

• Add Menu control options to Window forms and program their event-handler methods

• Wire multiple RadioButton and CheckBox object events to a single event-handler method

• Work through a programming example that illustrates the chapter’s concepts

Page 4: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 4

Delegates• Delegates store references (addresses) to methods

—as opposed to storing actual data

– Delegates form the foundation for events in C#

• Declaration for a delegate looks more like a method declaration than a class definition

– Except—delegate declaration has no body

– Declaration begins with the keyword delegate

• Declaration ends with a parenthesized list of parameters

• Unlike a method, the return type of a delegate becomes part of its identifying signature

Page 5: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 5

Delegates (continued)• Delegate declaration example

delegate string ReturnsSimpleString( );

• Delegate signature– Identifies what types of methods the delegate represents

• Above Example represents methods that return a string and require no argument – static string EndStatement( )

– static string ToString( )

– static string ReturnSaying( )

Page 6: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 6

Delegates (continued)• Associate delegate with method(s) by creating

delegate instance(s)

– Example

ReturnsSimpleString saying3 = new

ReturnsSimpleString(EndStatement);

• Constructor for delegate of the delegate class always takes just parameter

– Name of a method for the constructor to reference

Page 7: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 7

Delegates (continued)• Delegate identifier references the method sent as

argument to constructor

– Any use of delegate identifier now calls the method

• Methods are said to be wrapped by the delegate

– Delegate can wrap more than one method—called a multicast delegate

• += and -= operators are used to add/remove methods to/ from the delegate chain or invocation list

• Multicast delegates must have a return type of void

Page 8: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 8

Relationship of Delegates to Events• Delegates are used for event-driven application

– Delegate acts as intermediary between objects that are raising or triggering an event

• During compilation, the method or methods that will be called are not determined

• Events as special forms of delegates

– Place a reference to event-handler methods inside a delegate

– Once reference is made, or event is registered, delegate is used to call event-handler method when an event like a button click is fired

Page 9: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 9

Event Handling in C#• Form Designer in Visual Studio did much of the

work for you

– Double-clicked on a Button control object during design

1) Click event is registered as being of interest

2) An event-handler method heading is generated

– Two steps form event wiring process

• Wire an event—associate (identify) a method to handle its event

Page 10: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 10

Event Handling in C# (continued)

• Code associates the methods with a delegate

this.button1.Click += new System.EventHandler(this.button1_Click);

this.button2.Click += new System.EventHandler(this.button2_Click);

– System.EventHandler is a delegate type

– button1.Click and button2.Click are methods

– Keyword this is added to all code generated by Visual Studio .NET to indicate the current instance of a class

Page 11: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 11

ListBox Control Objects• Displays list of items for single or multiple

selections

– Scroll bar is automatically added when total number of items exceeds the number that can be displayed

• Can add or remove items at design time or dynamically at runtime

• Includes number of properties and events

– Items property used to set initial values

• Click on (Collections) to add items

Page 12: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 12

Adding a ListBox Control Object

Add ListBox control,

then click on Items property

(Collection) to type entries

Page 13: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 13

ListBox Control Objects (continued)• Name property

– Useful to set for program statements

• Sorted property – Set to true to avoid having to type values in sorted order

• Register an event for the ListBox– Might want to know when the item selection changes

– Double-clicking on any control registers its default event for the control

– SelectedIndexChanged—default event for ListBox

Page 14: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 14

ListBox Control Objects (continued)• Register its event with the System.EventHandler

delegatethis.lstBoxEvents.SelectedIndexChanged += new

System.EventHandler (this.listBox1_SelectedIndexChanged);

• Visual Studio .NET adds event handler method

private void listBox1_SelectedIndexChanged

(object sender, System.EventArgs e)

{

}

Page 15: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 15

ListBox Control Objects (continued)

• To retrieve string data from ListBox use Text property

this.txtBoxResult.Text = this.lstBoxEvents.Text;

– Place in method body

– When event fires, selection retrieved and stored in TextBox object

Page 16: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 16

ListBox Control Objects (continued)

Page 17: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 17

Multiple Selections with a ListBox• SelectionMode Property has values of

MultiSimple, MultiExtended, None and One

– MultiSimple: use the spacebar and click of mouse

– MultiExtended can also use Ctrl key, Shift key, and arrow keys

foreach(string activity in lstBoxEvents.SelectedItems)

{

result += activity + " ";

}

this.txtBoxResult.Text = result;

Page 18: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 18

ListBox Control Objects (continued)

Page 19: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 19

ListBox Control Objects (continued)• SelectedItem and SelectedItems returns objects

– Store numbers in the ListBox, once retrieved as objects, cast the object into an int or double for processing

• Adding items to a ListBox at runtime by using Add( ) method with the Items property

lstBoxEvents.Items.Add("string value to add");

private void btnNew_Click(object sender, System.EventArgs e)

{

lstBoxEvents.Items.Add(txtBoxNewAct.Text);

}

Page 20: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 20

ListBoxExample

Page 21: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 21

ListBoxExample—Properties Set

Page 22: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 22

ListBoxExample—Properties Set (continued)

Page 23: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 23

Properties of the ListBox Class

Page 24: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 24

Methods of the ListBox Class

Remember ListBox object also

inherits members

from Control

class

Page 25: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 25

ComboBox Controls

Extra TextBox object with ComboBox—User selects from list or types new value

Page 26: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 26

ComboBox Controls (continued)

Top line left blank in ComboBox when DropDownStyle property is set to DropDown (default setting)

Page 27: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 27

Handling ComboBox Events• ComboBox only allows a single selection to be

made

• Default event-handler method—SelectedIndexChanged( )

– Same as ListBox control object

• Could register KeyPress( ) event-handler method

– BUT, event is fired with each and EVERY keystroke

Page 28: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 28

Programming Event Handlers• Since ListBox object allows multiple selections,

Text property cannot be used

– Text ONLY gets the first one selected

• Use the SelectedItems, SelectedIndices, or Items to retrieve a collection of items selected

– Zero-based structures

– Access them as you would access an element from an array

– SelectedIndices is a collection of indexes

Page 29: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 29

Programming Event Handlers (continued)

KeyPress( ) event

handler method

fired with each

keystroke

Page 30: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 30

Menu Control Objects

Drag MainMenu control to form,

then click here to display Menu

structure

Page 31: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 31

Menu Control Objects (continued)• Preceding the character

with an ampersand (&) places an underline under the next character typed – F&ormat—creates Format

and Alt+o becomes the shortcut

• Also have Shortcut property– Can associate any key

combination to Menu options

Page 32: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 32

Menu Control Objects (continued)• To create separators,

right-click on the text label (below the needed separator)

• Select Insert Separator

Page 33: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 33

Menu Control Objects (continued)

Set the Menu property on

the form to the name of the MainMenu

object

Page 34: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 34

Wire Methods to Menu Option Event

• Set the Name property for each menu option

– Do this first, then wire the event

• Click events are registered by double-clicking on the Menu option

• When the menu option is clicked, the event triggers, happens, or is fired

Page 35: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 35

Adding Predefined Standard Windows Dialog Boxes

• Included as part of .NET

• Dialog boxes that look like standard Windows dialog boxes

– File Open, File Save, File Print, and File Print Preview

– Format Font

– Format Color dialogs

Page 36: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 36

Adding Predefined Standard Windows Dialog Boxes—Color

private void menuColor_Click(object sender, System.EventArgs e){ colorDialog1.Color = lblOutput.ForeColor; if (colorDialog1.ShowDialog( ) != DialogResult.Cancel ) { lblOutput.ForeColor = colorDialog1.Color; }}

Retrieves the current ForeColor property setting

for the Label object

Checks to see if Cancel button

clicked Set to

selection made

Page 37: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 37

Adding Predefined Standard Windows Dialog Boxes—Color

(continued)

Page 38: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 38

Adding Predefined Standard Windows Dialog Boxes—Font

private void menuFont_Click (object sender, System.EventArgs e)

{

fontDialog1.Font =

lblOutput.Font;

if (fontDialog1.ShowDialog( )

!= DialogResult.Cancel )

{

lblOutput.Font =

fontDialog1.Font ;

}

}

Page 39: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 39

GardeningForm Application

Page 40: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 40

GardeningForm Application (continued)

Page 41: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 41

GardeningForm Application (continued)

Page 42: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 42

CheckBox Objects• Appear as small boxes

– Allow users to make a yes/no or true/false selection

• Checked property set to either true or false depending on whether a check mark appears or not

– Default false value

• CheckChanged( )—default event-handler method

– Fired when CheckBox object states change

• Can wire one event handler to multiple objects

Page 43: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 43

Wiring One Event Handler to Multiple Objects

• Using Properties window, click on the Events Icon

• Click the down arrow associated with that event

• Select method to handle the event

• Follow the same steps for other objects

Page 44: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 44

CheckBox Object

Page 45: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 45

GroupBox Objects (continued)• CheckBox objects may be grouped together for

visual appearance

• Can move or set properties that impact the entire group

• A GroupBox control should be placed on the form before you add objects

• GroupBox control adds functionality to RadioButton objects

– Allow only one selection

Page 46: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 46

RadioButton Objects• Appear as small circles

• Give users a choice between two or more options

– Not appropriate to select more than one CheckBox object with RadioButton objects

• Group RadioButton objects by placing them on a Panel or GroupBox control

– Setting the Text property for the GroupBox adds a labeled heading over the group

Page 47: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 47

RadioButton Objects (continued)

Page 48: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 48

RadioButton Objects (continued)

• Turn selection on

this.radInterm.Checked = true;

• Raise a number of events, including Click( ) and CheckedChanged( ) events

• Wire the event handler methods for RadioButton objects—just like CheckBox

Page 49: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 49

RadioButton Objects (continued)

if(this.radBeginner.Checked){ cost +=10; this.lblMsg.Text = "Beginner “ + “-- Extra $10 charge";}else// more statements

Page 50: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 50

ComputeCost_CheckChanged( ) and

Click( ) events raised

Page 51: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 51

DinerGui Application Example

Page 52: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 52

DinerGui Application Example (continued)

Page 53: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 53

DinerGui Application Example (continued)

Page 54: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 54

DinerGui Application Example (continued)

Page 55: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 55

DinerGui Application Example (continued)

Page 56: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 56

DinerGui Application Example (continued)

Page 57: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 57

DinerGui Application Example (continued)

Page 58: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 58

DinerGui Application Example (continued)

Page 59: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 59

Properties—DinerGui Application

Page 60: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 60

Properties—DinerGui Application (continued)

Page 61: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 61

DinerGui Application Example (continued)

Page 62: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 62

DinerGui Application Example (continued)

Page 63: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 63

DinerGui Application Example (continued)

Page 64: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 64

DinerGui Application Example (continued)

Page 65: Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.

Microsoft Visual C# .NET: From Problem Analysis to Program Design 65

Chapter Summary• Delegates

• Event-handling procedures

– Registering an event

• ListBox control for multiple selections

• ComboBox versus ListBox objects

• Menu controls

• RadioButton versus CheckBox objects