Programming Based on Events - PowerPoint PPT Presentation

1 / 65
About This Presentation
Title:

Programming Based on Events

Description:

Form Designer in Visual Studio did much of the work for you ... Click on (Collections) to add items ... SelectedIndices is a collection of indexes ... – PowerPoint PPT presentation

Number of Views:104
Avg rating:3.0/5.0
Slides: 66
Provided by: manasi94
Category:

less

Transcript and Presenter's Notes

Title: Programming Based on Events


1
Chapter 9
  • Programming Based on Events

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

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 chapters concepts

4
Delegates
  • Delegates store references (addresses) to
    methodsas 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
  • Exceptdelegate 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

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( )

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

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 methodcalled 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

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

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 eventassociate (identify) a method to
    handle its event

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

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

12
Adding a ListBox Control Object
Add ListBox control, then click on Items property
(Collection) to type entries
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
  • SelectedIndexChangeddefault event for ListBox

14
ListBox Control Objects (continued)
  • Register its event with the System.EventHandler
    delegate
  • this.lstBoxEvents.SelectedIndexChanged new
    System.EventHandler
    (this.listBox1_SelectedIndexChanged)
  • Visual Studio .NET adds event handler method
  • private void listBox1_SelectedIndexChanged
  • (object
    sender, System.EventArgs e)

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

16
ListBox Control Objects (continued)
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

18
ListBox Control Objects (continued)
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)

20
ListBoxExample
21
ListBoxExampleProperties Set
22
ListBoxExampleProperties Set (continued)
23
Properties of the ListBox Class
24
Methods of the ListBox Class
Remember ListBox object also inherits members
from Control class
25
ComboBox Controls
Extra TextBox object with ComboBoxUser selects
from list or types new value
26
ComboBox Controls (continued)
Top line left blank in ComboBox when
DropDownStyle property is set to DropDown
(default setting)
27
Handling ComboBox Events
  • ComboBox only allows a single selection to be
    made
  • Default event-handler methodSelectedIndexChanged(
    )
  • Same as ListBox control object
  • Could register KeyPress( ) event-handler method
  • BUT, event is fired with each and EVERY keystroke

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

29
Programming Event Handlers (continued)
KeyPress( ) event handler method fired with each
keystroke
30
Menu Control Objects
Drag MainMenu control to form, then click here to
display Menu structure
31
Menu Control Objects (continued)
  • Preceding the character with an ampersand ()
    places an underline under the next character
    typed
  • Formatcreates Format and Alto becomes the
    shortcut
  • Also have Shortcut property
  • Can associate any key combination to Menu options

32
Menu Control Objects (continued)
  • To create separators, right-click on the text
    label (below the needed separator)
  • Select Insert Separator

33
Menu Control Objects (continued)
Set the Menu property on the form to the name of
the MainMenu object
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

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

36
Adding Predefined Standard Windows Dialog
BoxesColor
Retrieves the current ForeColor property setting
for the Label object
  • private void menuColor_Click(object sender,
  • System.EventArgs e)
  • colorDialog1.Color lblOutput.ForeColor
  • if (colorDialog1.ShowDialog( ) !
    DialogResult.Cancel )
  • lblOutput.ForeColor colorDialog1.Color

Checks to see if Cancel button clicked
Set to selection made
37
Adding Predefined Standard Windows Dialog
BoxesColor (continued)
38
Adding Predefined Standard Windows Dialog
BoxesFont
  • private void menuFont_Click (object sender,
    System.EventArgs e)
  • fontDialog1.Font
  • lblOutput.Font
  • if (fontDialog1.ShowDialog( )
  • ! DialogResult.Cancel )
  • lblOutput.Font
  • fontDialog1.Font

39
GardeningForm Application
40
GardeningForm Application (continued)
41
GardeningForm Application (continued)
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

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

44
CheckBox Object
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

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

47
RadioButton Objects (continued)
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
    objectsjust like CheckBox

49
RadioButton Objects (continued)
  • if(this.radBeginner.Checked)
  • cost 10
  • this.lblMsg.Text
  • "Beginner
  • -- Extra 10 charge"
  • else
  • // more statements

50
ComputeCost_CheckChanged( ) and Click( ) events
raised
51
DinerGui Application Example
52
DinerGui Application Example (continued)
53
DinerGui Application Example (continued)
54
DinerGui Application Example (continued)
55
DinerGui Application Example (continued)
56
DinerGui Application Example (continued)
57
DinerGui Application Example (continued)
58
DinerGui Application Example (continued)
59
PropertiesDinerGui Application
60
PropertiesDinerGui Application (continued)
61
DinerGui Application Example (continued)
62
DinerGui Application Example (continued)
63
DinerGui Application Example (continued)
64
DinerGui Application Example (continued)
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
Write a Comment
User Comments (0)
About PowerShow.com