Programming Based on Events

Slides:



Advertisements
Similar presentations
CS0004: Introduction to Programming Select Case Statements and Selection Input.
Advertisements

Information System Design Lab 5&6. User Interface Design.
Using Macros and Visual Basic for Applications (VBA) with Excel
Chapter 5 Menus, Common Dialog Boxes, Sub Procedures, and Function Procedures Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved.
Microsoft Visual C#.NET: From Problem Analysis to Program Design1 Chapter 9 Programming Based on Events Microsoft Visual C#.NET: From Problem Analysis.
C# Programming: From Problem Analysis to Program Design1 9 Programming Based on Events.
C# Programming: From Problem Analysis to Program Design1 Programming Based on Events C# Programming: From Problem Analysis to Program Design 3 rd Edition.
Programming Based on Events
C# Programming: From Problem Analysis to Program Design1 Creating Your Own Classes C# Programming: From Problem Analysis to Program Design 3rd Edition.
Programming Based on Events
C# Programming: From Problem Analysis to Program Design1 Introduction to Windows Programming C# Programming: From Problem Analysis to Program Design 3.
Microsoft Visual Basic 2005 CHAPTER 8 Using Procedures and Exception Handling.
Chapter 8: String Manipulation
Hello World In C++ and Microsoft Visual C++. Directions to begin a project 1. Go to All Programs 2. Open Visual Studio C++ 3. Click on New Project 4.
Microsoft Visual Basic 2012 Using Procedures and Exception Handling CHAPTER SEVEN.
Microsoft Visual Basic 2008 CHAPTER 8 Using Procedures and Exception Handling.
5-1 aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf.
1 Graphical User Interfaces Part 2 Outline ListBoxes and CheckedListBoxes ListBoxes CheckedListBoxes ComboBoxes.
© 2006 Lawrenceville Press Slide 1 Chapter 3 Visual Basic Interface.
VISUAL C++ PROGRAMMING: CONCEPTS AND PROJECTS Chapter 1B Introduction (Tutorial)
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. Chapter 5 Menus, Common Dialog Boxes, Sub Procedures, and Function Procedures.
Chapter 12: Using Controls. Examining the IDE’s Automatically Generated Code A new Windows Forms project has been started and given the name FormWithALabelAndAButton.
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved Typing Application Introducing Keyboard Events, Menus, Dialogs and the Dictionary.
Chapter 5 Menus, Common Dialog Boxes, and Methods Programming in C#.NET © 2003 by The McGraw-Hill Companies, Inc. All rights reserved.
CIS 338: VB.NET Components Dr. Ralph D. Westfall April, 2011.
Visual Basic.NET Comprehensive Concepts and Techniques Chapter 7 Using Menus, Common Dialogs, Procedures, Functions, and Arrays.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 13 – Graphical User Interfaces Part 2 Outline.
Graphical User Interface Concepts - Part 2 Session 09 Mata kuliah: M0874 – Programming II Tahun: 2010.
Chapter 5 Menus, Common Dialog Boxes, Sub Procedures, and Function Procedures Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved.
Chapter One An Introduction to Visual Basic 2010 Programming with Microsoft Visual Basic th Edition.
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
1 Chapter Ten Using Controls. 2 Objectives Learn about Controls How to create a Form containing Labels How to set a Label’s Font How to add Color to a.
1 Creating Windows GUIs with Visual Studio. 2 Creating the Project New Project Visual C++ Projects Windows Forms Application Give the Project a Name and.
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
Object-Oriented Application Development Using VB.NET 1 Chapter 10 VB.NET GUI Components Overview.
1 Chapter 4 – Decisions 4.1 Relational and Logical Operators (see other set of slides) 4.2 If Blocks (see other set of slides) 4.3 Select Case Blocks (see.
Creating Menus Menu Bar – behaves like standard Windows menus Can be used in place of or in addition to buttons to execute a procedure Menu items are controls.
Iterations (aka Loops). 2 Loops Loops (iterations) are segments of code that may be executed several times. Fixed-count (definite) loops repeat a fixed.
Chapter 2 More Controls Programming in C#. NET Objectives Use text boxes, group boxes, check boxes, radio buttons, and picture boxes effectively.
Unit 6 Repetition Processing Instructor: Brent Presley.
COMPUTER PROGRAMMING I 3.01 Apply Controls Associated With Visual Studio Form.
Iterations (aka Loops). 2 Loops Loops (iterations) are segments of code (loop body) that may be executed several times. Fixed-count (definite) loops repeat.
COMPUTER PROGRAMMING I 3.01 Apply Controls Associated With Visual Studio Form.
COMPUTER PROGRAMMING I Apply Procedures to Develop List Box and Combo Box Objects.
Chapter 8 Multiple Forms, Modules, and Menus. Introduction This chapter demonstrates how to: – Add multiple forms to a project – Create a module to hold.
Chapter 1: An Introduction to Visual Basic .NET
Graphical User Interface
Chapter 9 Programming Based on Events
Chapter 2: The Visual Studio .NET Development Environment
INF230 Basics in C# Programming
Apply Procedures to Develop Menus, List Box and Combo Box Objects
Computing with C# and the .NET Framework
C# Programming: From Problem Analysis to Program Design
Programming Based on Events
C# Programming: From Problem Analysis to Program Design
Chapter 1: An Introduction to Visual Basic 2015
Variables and Arithmetic Operations
3.01 Apply Controls Associated With Visual Studio Form
Chapter Eleven Handling Events.
CHAPTER FIVE Decision Structures.
3.01 Apply Controls Associated With Visual Studio Form
Reference: COS240 Syllabus
Using Procedures and Exception Handling
Apply Procedures to Develop Menus, List Box and Combo Box Objects
Variables and Arithmetic Operations
CIS16 Application Development and Programming using Visual Basic.net
Lecture Set 10 Windows Controls and Forms
Web Development Using ASP .NET
Brief description on how to navigate within this presentation (ppt)
Overview of the IDE Visual Studio .NET is Microsoft’s Integrated Development Environment (IDE) for creating, running and debugging programs (also.
Presentation transcript:

Programming Based on Events 9 C# Programming: From Problem Analysis to Program Design 2nd Edition C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

Chapter Objectives (continued) Add Menu and TabControl 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 C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

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( ) C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

Sample Consider the following: delegate void GreetingDelegate(string s); GreetingDelegate can now encapsulate any method as long as it has a void return type and a single string argument. You can now do this: public static void Hello(string s) { Console.WriteLine("Hello, {0}!", s); }

Sample (continued) Because the Hello() method matches the GreetingDelegate definition, you can assign a reference the the Hello() method to a new instance of GreetingDelegate as follows: GreetingDelegate myDel = new GreetingDelegate(Hello); Once the Hello() method is assigned to myDel, then each of the following statements will result in the same output: Hello, Kim! Hello( "Kim" ); myDel( "Kim" );

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 C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

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 to indicate the current instance of a class C# Programming: From Problem Analysis to Program Design

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 run time Includes number of properties and events The Items property used to set initial values Click on (Collections) to add items C# Programming: From Problem Analysis to Program Design

Adding a ListBox Control Object Add ListBox control, then click on Items property (Collection) to type entries Figure 9-2 String Collection Editor C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

ListBox Control Objects (continued) Register its event with the System.EventHandler delegate this.lstBoxEvents.SelectedIndexChanged += new System.EventHandler (this.listBox1_SelectedIndexChanged); Visual Studio adds event-handler method private void listBox1_SelectedIndexChanged (object sender, System.EventArgs e) { } C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

ListBox Control Objects (continued) Figure 9-3 SelectedIndexChanged event fired C# Programming: From Problem Analysis to Program Design

ListBox.Items

ListBox.Items ListBox.Items

Multiple Selections with a ListBox SelectionMode Property has values of MultiSimple, MultiExtended, None, and One MultiSimple: use the spacebar and click the mouse MultiExtended can also use Ctrl key, Shift key, and arrow keys foreach(string activity in lstBoxEvents.SelectedItems) { result += activity + " "; } this.txtBoxResult.Text = result; C# Programming: From Problem Analysis to Program Design

ListBox Control Objects (continued) Figure 9-4 Multiple selections within a ListBox object C# Programming: From Problem Analysis to Program Design

ListBox Control Objects (continued) SelectedItem and SelectedItems return 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 run time 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); } C# Programming: From Problem Analysis to Program Design

ListBoxExample Figure 9-5 Add( ) method executed inside the buttonClick event C# Programming: From Problem Analysis to Program Design

C# Programming: From Problem Analysis to Program Design

ListBox Control Properties C# Programming: From Problem Analysis to Program Design

ListBox Control Methods C# Programming: From Problem Analysis to Program Design

ListBox Control Methods (continued) Note that ListBox control inherits members from Control class C# Programming: From Problem Analysis to Program Design

ComboBox Controls Figure 9-6 ComboBox and ListBox objects Extra TextBox object with ComboBox – User selects from list or types new value Figure 9-6 ComboBox and ListBox objects C# Programming: From Problem Analysis to Program Design

ComboBox Controls (continued) Top line left blank in ComboBox when DropDownStyle property is set to DropDown (default setting) Figure 9-7 ComboBox list of choices C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

Programming Event Handlers (continued) KeyPress( ) event-handler method fired with each keystroke Figure 9-8 KeyPress and SelectedIndexChanged events fired C# Programming: From Problem Analysis to Program Design

MenuStrip Controls Offers advantage of taking up minimal space Drag and drop MenuStrip object from toolbox to your form Icon representing MenuStrip placed in Component Tray Select MenuStrip object to set its properties To add the text for a menu option, select the MenuStrip icon and then click in the upper-left corner of the form C# Programming: From Problem Analysis to Program Design

MenuStrip Controls (continued) Drag MenuStrip control to form, then click here to display Menu structure Figure 9-9 First step to creating a menu C# Programming: From Problem Analysis to Program Design

MenuStrip Control Objects Ampersand (&) is typed between the F and o for the Format option to make Alt+o shortcut for Format Figure 9-10 Creating a shortcut for a menu item C# Programming: From Problem Analysis to Program Design

MenuStrip Control Objects (continued) To create separators, right-click on the text label (below the needed separator) Select Insert Separator Figure 9-11 Adding a separator C# Programming: From Problem Analysis to Program Design

MenuStrip Control Objects (continued) Set the text to be displayed when the cursor is rested on top of the control Figure 9-12 Setting the Property for the ToolTip control C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

Adding Predefined Standard Windows Dialog Boxes – Color 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 C# Programming: From Problem Analysis to Program Design

Adding Predefined Standard Windows Dialog Boxes – Color (continued) Figure 9-14 Color dialog box menu option C# Programming: From Problem Analysis to Program Design

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 ; } Figure 9-15 Font dialog box menu option C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

Wiring One Event Handler to Multiple Objects (continued) Figure 9-16 Wiring the event-handler method C# Programming: From Problem Analysis to Program Design

CheckBox Object Figure 9-17 ComputeCost_CheckedChanged( ) method raised C# Programming: From Problem Analysis to Program Design

GroupBox Objects 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 C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

RadioButton Objects (continued) Figure 9-18 GroupBox and RadioButton objects added C# Programming: From Problem Analysis to Program Design

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 C# Programming: From Problem Analysis to Program Design

RadioButton Objects (continued) Register ComputeCost_CheckedChanged( ) method Figure 9-19 Wired Click event C# Programming: From Problem Analysis to Program Design

RadioButton Objects (continued) ComputeCost_CheckedChanged( ) method if (this.radBeginner.Checked) { cost +=10; this.lblMsg.Text = "Beginner “ + “-- Extra $10 charge"; } else // more statements C# Programming: From Problem Analysis to Program Design

ComputeCost_CheckChanged( ) and Click( ) Events Raised Figure 9-20 ComputeCost_CheckedChanged( ) and Click( ) events raised C# Programming: From Problem Analysis to Program Design

TabControl Controls Sometime an application requires too many controls for a single screen TabControl object displays multiple tabs, like dividers in a notebook Each separate tab can be clicked to display other options Add a TabControl object to the page by dragging the control from the Container section of the Toolbox C# Programming: From Problem Analysis to Program Design

TabControl Controls (continued) Figure 9-21 Tabbed controlled application C# Programming: From Problem Analysis to Program Design

TabControl Controls (continued) Figure 9-22 TabControl object stretched to fill form C# Programming: From Problem Analysis to Program Design

TabControl Controls (continued) TabPage property enables you to format individual tabs Clicking the ellipsis beside the Collection value displays the TabPage Collection Editor C# Programming: From Problem Analysis to Program Design

DinerGui Application Example Figure 9-24 Problem specification for DinerGUI example C# Programming: From Problem Analysis to Program Design

DinerGui Application Example (continued) C# Programming: From Problem Analysis to Program Design

DinerGui Application Example (continued) Figure 9-25 Prototype for DinerGUI example C# Programming: From Problem Analysis to Program Design

DinerGui Application Example (continued) Figure 9-26 Class diagrams C# Programming: From Problem Analysis to Program Design

DinerGui Application Example (continued) Figure 9-35 Clear Order click event fired C# Programming: From Problem Analysis to Program Design

Chapter Summary Delegates Event-handling procedures Registering an event ListBox control for multiple selections ComboBox versus ListBox objects C# Programming: From Problem Analysis to Program Design

Chapter Summary (continued) Adding controls to save space MenuStrip controls TabControl Use of GroupBox controls RadioButton versus CheckBox objects C# Programming: From Problem Analysis to Program Design