Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard...

45
Chapter 7, Slide 1 Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus

Transcript of Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard...

Page 1: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 1 Starting Out with Visual Basic 3rd Edition

Chapter 7

Multiple Forms,

Standard Modules,

And Menus

Page 2: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 2 Starting Out with Visual Basic 3rd Edition

Chapter 7Introduction

Page 3: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 3 Starting Out with Visual Basic 3rd Edition

Chapter 7 Topics How to add multiple forms to a project How to create a standard module

• Holds procedures and functions not associated with a specific form

Creating a menu system• Context menus• With commands and submenus that the user

may select from

Page 4: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 4 Starting Out with Visual Basic 3rd Edition

Section 7.1Multiple Forms

Visual Basic Projects May Have Multiple Forms

A Form Designated as the Startup Object Is Displayed When the Project Executes

Other Forms in a Project Are Displayed by Programming Statements

Page 5: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 5 Starting Out with Visual Basic 3rd Edition

Form Names

Each form has its specific name• Programs refer to a form by this name• VB assigns a default name Form1 to forms• A form’s Name property allows us to set or

change the form name• Standard prefix for form names is frm

Each form also has a file name (.vb extension)• Forms are stored on disk using this name• To change the file name:◦ Right click in Solution Explorer, select Rename

Page 6: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 6 Starting Out with Visual Basic 3rd Edition

Adding a New Form to a Project

Click Add New Item on the toolbar• Or Project on menu, then Add Windows Form

Add New Item dialog box appears Click on Windows Form under Templates Change the default name if you wish Click the Open button New form now appears in:

• Design window• Solution Explorer

Page 7: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 7 Starting Out with Visual Basic 3rd Edition

Switching from Forms to Form Code

Design window has two tabs for each form• One for form design• One for the code associated with a form

For two forms named frmMain and frmError, can select from the following tabs:• frmMain.vb[Design] Main form design• frmMain.vb Main form code• frmError.vb[Design] Error form design• frmError.vb Error form code

Page 8: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 8 Starting Out with Visual Basic 3rd Edition

Changing the Startup Form

First form created in a project becomes the startup object• The form displayed when application runs

To make another form the startup object• Right-click project name in Solution Explorer• Click Properties• Click down arrow in Startup Form box• Select new startup form from drop-down list• Click Ok

Page 9: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 9 Starting Out with Visual Basic 3rd Edition

Classes and Instances

The form design is a class• It’s only a design or description of a form• Think of it like a blueprint◦ A blueprint is a detailed description of a house◦ A blueprint is not a house

The form design can be used to create one or more instances of the form• Like building a house from the blueprint

In order to use a form in a program, we must first create an instance of it from the design

Page 10: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 10 Starting Out with Visual Basic 3rd Edition

Creating an Instance of a Form Dim statement used to create instance of form

To create an instance of frmError: • frmError is the form design name (the class)• New frmError creates an instance of the form• Variable errorForm refers to the form instance

and is used to perform operations on the form The form is not yet visible, but it now exists Show or ShowDialog makes the form visible

Dim ObjectVariable As New ClassName()

Dim errorForm As New frmError()

Page 11: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 11 Starting Out with Visual Basic 3rd Edition

Modal Forms & ShowDialog Method A modal form prevents the user from

changing focus to another form in the application as long as it remains open

For example:

• Variable errorForm represents an instance of frmError as shown in the previous slide

• The ShowDialog method displays the form instance named errorForm as a modal form

Must close errorForm in order to change focus to another form in the application

errorForm.ShowDialog()

Page 12: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 12 Starting Out with Visual Basic 3rd Edition

Modeless Forms & Show Method A modeless form allows the user to change

focus at will to another form in the application while that form remains open

For example:

• Variable errorForm represents an instance of frmError as shown previously

• The Show method displays the form instance named errorForm as a modeless form

Can change focus to other forms in the application while errorForm remains open

errorForm.Show()

Page 13: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 13 Starting Out with Visual Basic 3rd Edition

Closing a Form

A form may close itself using the Close method and referring to itself as "Me":

As in

Me.Close()

Private Sub btnClose_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) _Handles btnClose.Click

Me.Close()End Sub

Page 14: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 14 Starting Out with Visual Basic 3rd Edition

Hiding a Form

Closing a Form eliminates it from memory To retain the form in memory but remove it

from the display, use the Hide Method:

To redisplay the form use the ShowDialog or Show method

Me.Hide()

Page 15: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 15 Starting Out with Visual Basic 3rd Edition

More on Modal and Modeless Forms

statement;messageForm.ShowDialog()

' Statements below will' not execute until the' Form is closed

statement;

statement;messageForm.Show()

' Statements below will' execute right after the' Form is displayed

statement;

Display of a modal form causes execution of calling statements to halt until form is closed

Display of a modeless form allows execution to continue

Tutorial 7-1 demonstrates these differences

Page 16: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 16 Starting Out with Visual Basic 3rd Edition

The Form Load Event The Load event is triggered just before the

form is initially displayed Any code needed to prepare the form prior to

display should be in the Load event If some controls should not be visible initially,

set their Visible property in the Load event Double click on a blank area of the form to

set up a Load event as shown belowPrivate Sub frmMain_Load(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Page 17: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 17 Starting Out with Visual Basic 3rd Edition

The Form Activated Event

The Activated event is triggered when focus switches to the form from another form or application

The Load event is triggered once when the form is initially displayed

The Activated event is also triggered when the form is initially displayed• Occurs immediately after the Load event

The Activated event may be triggered many more times while a form is being displayed

Page 18: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 18 Starting Out with Visual Basic 3rd Edition

The Form Closing Event

The Closing event is triggered as the form is being closed, but before it has closed

The Closing event can be used to ask the user if they really want the form closed

Private Sub frmMain_Closing(ByVal sender As Object, _ByVal e As System.ComponentModel.CancelEventArgs) _Handles MyBase.Closing

If MessageBox.Show(“Are you Sure?”, “Confirm”, _MessageBoxButtons.YesNo) = DialogResult.Yes Thene.Cancel = False ‘continue, close form

Elsee.Cancel = True ‘cancel form close

End IfEnd Sub

Page 19: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 19 Starting Out with Visual Basic 3rd Edition

The Form Closed Event

Closed event triggered after a form is closed Note that it is now too late to prevent the

form from being closed (it is already)

Page 20: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 20 Starting Out with Visual Basic 3rd Edition

Using Objects on a Different Form

When code in a form refers to an object, it is assumed that object is in that same form

You can refer to an object in another form• Simply preface the object name with the

variable name associated with that form• frmGreeting has a control named lblMessage• Set Text property to Hello before displaying

Dim greetingForm As New frmGreeting()greetingForm.lblMessage.Text = "Hello!"greetingForm.ShowDialog()

Page 21: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 21 Starting Out with Visual Basic 3rd Edition

Class-level Variables in a Form

Class-level variables are Private by default This means they are not accessible by code

in other forms If you want to access from other forms, they

must be declared with the Public qualifier:

Public sngTotal As Single' Instead of the declaration' Dim sngTotal As Single

Page 22: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 22 Starting Out with Visual Basic 3rd Edition

Public/Private Procedures in a Form

Procedures, by default, are Public They can be accessed by code outside of

their Form To make a procedure invisible outside its

own form, declare it to be Private

Tutorial 7-2 provides an opportunity to work with a multiple form application

Page 23: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 23 Starting Out with Visual Basic 3rd Edition

Section 7.2Standard Modules

A Standard Module Contains Code - Declarations and Procedures -

That Are Used by Other Files in a Project

Page 24: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 24 Starting Out with Visual Basic 3rd Edition

Standard Modules

A separate .vb file not associated with a form Contains no Event Procedures Used for code to be shared by multiple forms Procedures or variables used by one form

should be declared in that form Procedures or variables used by many forms

should be declared in a standard module

Page 25: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 25 Starting Out with Visual Basic 3rd Edition

Standard Module Syntax

ModuleName is normally same as .vb file Module Contents are sub procedures and

functions which can be• Private - only used by functions in that

module• Public - can be called from outside of the

module If not specified, a procedure is public

Module ModuleName[Module Contents]

End Module

Page 26: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 26 Starting Out with Visual Basic 3rd Edition

Adding a Standard Module

Click Add New Item on the toolbar• Or Project on menu, then Add Module

Add New Item dialog box appears Click on Module under Templates Change the default name if you choose Click the Open button A new empty module now appears in:

• Code window• Solution Explorer

Page 27: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 27 Starting Out with Visual Basic 3rd Edition

Module Level Variables These are declared within a module But outside of any functions or sub

procedures in that module If declared Dim or Private, the scope is the

module (called module scope) If declared Public, the scope is the entire

application (called global scope)

Tutorial 7-3 demonstrates the use of a standard module in an application

Page 28: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 28 Starting Out with Visual Basic 3rd Edition

Application with No Startup Form

Must change the startup form to Sub Main Main must be a public sub procedure It must be in a standard module When the application starts

• No Form will be displayed• Main will be given control

Page 29: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 29 Starting Out with Visual Basic 3rd Edition

Section 7.3Menus

Visual Basic Allows You to Create a System of Drop-down Menus for Any Form in Your Application

You Use the Menu Designer to Create a Menu System

Page 30: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 30 Starting Out with Visual Basic 3rd Edition

Components of a Menu SystemMenu Name

SubmenuMenu Command

Each drop-down menu has a menu name Each drop-down menu has a list of actions or

commands that can be performed Some commands may lead to a submenu

Page 31: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 31 Starting Out with Visual Basic 3rd Edition

Components of a Menu System

Commands can be performed by • A key or key combination called a shortcut key• A single letter and the Alt key called an access key

Menu must be open to use an access key Shortcut key works when menu is not displayed

Shortcut Key (F7)

Access Key (L)

Page 32: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 32 Starting Out with Visual Basic 3rd Edition

Components of a Menu System

A disabled menu command can’t be selected at present and shows as a light color (grayed out)

A checked menu command toggles between the checked (if on) and unchecked (if off) states

A separator bar helps group similar commands

Checked Menu Command

Separator Bar

Page 33: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 33 Starting Out with Visual Basic 3rd Edition

MainMenu Control Add to form with double-click on MainMenu

control in Toolbox Menus & Toolbars section The MainMenu control is displayed in the

component tray (bottom of Design window) May have many MenuItem objects with the

following key properties:• MenuItem name used by VB to identify it• MenuItem text displayed to the user• Actions in the form of a MenuItem click event• Submenu• Separator bar

Page 34: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 34 Starting Out with Visual Basic 3rd Edition

MenuItem Object Names Should begin with mnu Then by convention are spelled, specifying

their hierarchical position:• mnuFile• mnuFileSave• mnuFilePrint

Page 35: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 35 Starting Out with Visual Basic 3rd Edition

MenuItem Text Properties

The text property holds the item description displayed to the user

If an access key is assigned, that letter must be preceded with an ampersand

Object Name Text Property Access KeymnuFile &File FmnuFileSave &Save S

mnuFileExit E&xit X

Page 36: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 36 Starting Out with Visual Basic 3rd Edition

Menu Designer

The Menu Designer allows menu creation by filling in a box with the menu text:

Enter firstcommand inthe File menu

Enter thenext menuname

Page 37: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 37 Starting Out with Visual Basic 3rd Edition

Shortcut Keys

Keyboard based shortcuts that execute menu commands without using the menu system

For example, ctrl-c to Copy to the clipboard These are set via the Shortcut property of

each menu item A shortcut is displayed to the user only if the

ShowShortcut property is set to true

Page 38: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 38 Starting Out with Visual Basic 3rd Edition

Disabled MenuItem Objects

A menu item is grayed out (disabled) with the Enabled property

Paste option is initially disabled and only enabled after something is cut or copied• Code initially disables the Paste option

• Following a cut or copy, Paste is enabledmnuEditPaste.Enabled = True

mnuEditPaste.Enabled = False

Page 39: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 39 Starting Out with Visual Basic 3rd Edition

Adding Separator Bars

Right-click menu item, select Insert Separator• Separator inserted above the menu item

Or create a menu item with one hyphen (-) as the text property

Page 40: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 40 Starting Out with Visual Basic 3rd Edition

Submenus

When selecting a menu item in the designer, a Type Here box appears to its right• Begin a submenu by setting up this menu item

If a menu item has a submenu, a solid right-pointing arrow will be shown for this item

Page 41: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 41 Starting Out with Visual Basic 3rd Edition

Inserting, Deleting, & Rearranging To insert a new menu item within the list

• Right-click the item to follow the new one• Choose Insert New from the shortcut menu

Use Menu Designer to add new menu items at the end by entering the text to appear

To remove a menu item• Right-click on the item• Choose Delete from the shortcut menu

The Menu Designer can rearrange items using a click and drag approach

Page 42: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 42 Starting Out with Visual Basic 3rd Edition

MenuItem Click Event Procedures Menus and submenus require no code Commands require a click event procedure

• Double click on the menu item• Event procedure created in the code window• Programmer supplies the code to execute

Double click the MenuItem object named mnuFileExit to create the following

Private Sub mnuFileExit_Click(ByVal sender as System.Object, _ByVal e as System.EventArgs) Handles mnuFileExit.Click

Me.Close()

End Sub

Programmer supplied code

Click event procedure created by VB

Page 43: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 43 Starting Out with Visual Basic 3rd Edition

Standard Menu Items

In general follow the conventions that most application menu systems use• File is leftmost item with access key Alt-F• File item has Exit command, access key Alt-X• Help is the rightmost item• Help menu has an About command

Tutorial 7-4 demonstrates how to create a menu system

Page 44: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 44 Starting Out with Visual Basic 3rd Edition

Context Menus A pop-up menu that appears on a right-click Context menus are designed for a particular

control or set of controls To set up a Context Menu:

• Double-click ContextMenu control in the ToolBox to add it to the component tray

• Build menu system using Menu Designer• Build Click event procedures as needed• Use ContextMenu property of form controls

to link desired control(s) to the menu

Page 45: Chapter 7, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 7 Multiple Forms, Standard Modules, And Menus.

Chapter 7, Slide 45 Starting Out with Visual Basic 3rd Edition

Section 7.4The High Adventure Travel

Agency Price Quote Application

Build an application with multiple forms, a standard module, and a menu system