chapter 07

45
7-1 lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh lskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjh

Upload: terry-yoast

Post on 19-May-2015

757 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Chapter 07

7-1

aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf

Page 2: Chapter 07

Lists, Loops, and Printing

Chapter77

McGraw-Hill © 2006 The McGraw-Hill Companies, Inc. All rights reserved.

Page 3: Chapter 07

7-3

Objectives (1 of 2)

Create and use list boxes and combo boxesDifferentiate among the available types of combo

boxesEnter items into list boxes using the Items collection in

the Properties windowAdd and remove items in a list at run timeDetermine which item in a list is selectedUse the Items.Count property to determine the

number of items in a list

Page 4: Chapter 07

7-4

Objectives (2 of 2)

Display a selected item from a listUse Do/Loops and For/Next statements to iterate

through a loopTerminate a loop with the Exit statementSkip to the next iteration of a loop by using the

Continue statementSend information to the printer or the Print Preview

window using the PrintDocument class

Page 5: Chapter 07

7-5

ListBoxes and ComboBoxes (1 of 2)

Have most of the same properties and operating in a similar fashionAn exception is that a combo box control has a

DropDown Style propertyProvide the user with a list of items to select fromVarious styles, choose based on

Space availableNeed to select from an existing listNeed to add to a list

Page 6: Chapter 07

7-6

List Boxes and ComboBoxes (2 of2)

Various Styles of List and Combo boxes

Page 7: Chapter 07

7-7

The Items Collection

List of items in a ListBox or ComboBox is a collection

VB Collections are objects that have properties and methods that allow Adding itemsRemoving itemsReferring to individual elementsCounting itemsClearing the collection

Page 8: Chapter 07

7-8

Filling a List/Using the Properties Window

Design time in Properties windowItems propertyClick on ellipses to open String

Collection EditorType list items, end each line with

Enter keyRun time methods

Items.Add--OR--

Items.Insert

Page 9: Chapter 07

7-9

Filling a List - Design Time

Click ellipses button to open

Page 10: Chapter 07

7-10

Using the Items.Add Method

Use to add new items to the list at run timeGeneral Form

Examples Object.Items.Add(ItemValue)

Me.schoolsListBox.Items.Add("Harvard")Me.schoolsListBox.Items.Add("Stanford")Me.schoolsListBox.Items.Add(schoolsTextBox.Text)Me.majorsComboBox.Items.Add(majorsComboBox.Text)Me.majorsComboBox.Items.Add(majorString)

Page 11: Chapter 07

7-11

Using the Items.Insert Method

Use to add new items to the list at run time in a specific location (index position) in the collection

General Form

Examples

Me.schoolsListBox.Items.Insert(0, "Harvard")Me.majorsComboBox.Items.Insert(1, Me.majorsComboBox.Text)

Object.Items.Insert(IndexPosition, ItemValue)

Page 12: Chapter 07

7-12

The SelectedIndex Property

Index number of currently selected item is stored in the SelectedIndex property

If no list item is selected, SelectedIndex property is negative 1 (-1)

Use to select an item in list or deselect all items in code

Page 13: Chapter 07

7-13

The Items.Count Property

Use to determine number of items in the list

Remember: Items.Count is always one more than the highest possible Selected Index because indexes begin with 0For example, if there are five items in a list:

Items.Count = 5 ANDHighest Index = 4

Page 14: Chapter 07

7-14

Me.schoolsListBox.Items(5) = "University of California"

' Next line references the currently selected item.selectedFlavorString = flavorListBox.Items(flavorListBox.Selected Index).ToString( )

Referencing the Items Collection

Use the index of the item to reference a specific item in the collection

Remember that the index is zero based so the first item in the list is index position zero

Page 15: Chapter 07

7-15

Removing an Item from a List

Use the Items.RemoveAt method to remove an item by index from the list and the Items.Remove method to remove by specifying the text

General Form

ExamplesMe.namesListBox.Items.RemoveAt(0)‘ Remove the item in position indexInteger.Me.schoolsComboBox.Items.RemoveAt(indexInteger)‘ Remove the currently selected item.

Object.Items.RemoveAt(IndexPosition)

Page 16: Chapter 07

7-16

The Items.Remove Method

Use the Items.Remove method to remove an item by specifying the text

General Form

Examples

namesListBox.Items.Remove("My School")schoolsComboBox.Items.Remove(schoolTextBox.Text)' Next line removes the currently selected item.coffeeComboBox.Items.Remove(coffeeComboBox.Text)

Object.Items.Remove(TextString)

Page 17: Chapter 07

7-17

Clearing a List

Use the Items.Clear method to clear all items and empty a combo box or list box

General Form

Examples

Me.schoolsListBox.Items.Clear( )Me.majorsComboBox.Items.Clear( )

Object.Items.Clear( )

Page 18: Chapter 07

7-18

List Box and Combo Box Events

In the Editor window, select the control name in the Class Namelist (at the top-left of the window), drop down the Method Name list, and select the event for which you want to write code or double-click the event name in the Properties window after clicking the Events button

The Editor will create the procedure header for youTextChanged Event

Occurs when user types text into combo boxList box does not have TextChanged Event

Enter Event (control receives focus)-an Enter event fires when a user tabs from control to control

Leave Event (control loses focus)-a Leave event triggers a user tabs between controls

Page 19: Chapter 07

7-19

Do/Loops

A loop repeats a series of instructionsAn iteration is a single execution of the statement(s) in

the loopUsed when the exact number of iterations is unknownA Do/Loop terminates based on a specified condition

Execution of the loop continues while a condition is True or until a condition is True

The condition can be placed at the top or the bottom of the loop

Page 20: Chapter 07

7-20

The Do and Loop Statements -General Form

Do {While |Until} condition

' Statements in loop.

Loop

--OR--

Do

' Statements in loop.

Loop {While | Until} condition

Top of Loop Condition,

Pretest

Bottom of Loop

Condition,Posttest

Page 21: Chapter 07

7-21

Pretest vs. Posttest

Pretest, loop may never be executed since tested BEFORE running

Do While … Loop

Do Until … LoopPosttest, loop will always be executed at least once

Do … Loop While

Do … Loop Until

Page 22: Chapter 07

7-22

Pretest vs. Posttest Diagram

Page 23: Chapter 07

7-23

The Boolean Data Type Revisited

Can help when searching a list for a specific valueBoolean variable is always in one of two states; True

or FalseWhen a particular situation occurs, set Boolean variable

to TrueUse a loop to check for True

Many programmers refer to Boolean variables as switches or flagsSwitches have two states – on or offFlags are considered either up or down

Page 24: Chapter 07

7-24

For/Next Loops

Used to repeat statements in a loop a specific number of times

Uses a numeric counter variable, called Loop Index, which is tested to determine the number of times the statements inside the loop will execute

Loop Index is incremented at the bottom of the loop on each iteration

Step value can be included to specify the incrementing amount to increment Loop Index, step can be a negative number

Page 25: Chapter 07

7-25

The For and Next Statements - General Form

For LoopIndex = InitialValue To TestValue [Step Increment] ' Statements in loop.

Next [LoopIndex]

A For/Next loop can handle all three elements of a counter-controlled loop

Initialize the counter

Increment the counter

Test the counter to determine when it is time to terminate the loop

Page 26: Chapter 07

7-26

For/Next Loop Diagram

Page 27: Chapter 07

7-27

Exiting Loops

In some situations you may need to exit the loop prematurely

Click on the form’s close box or use the VB menu bar or toolbar to stop the program; or Ctrl+Break

Use the Exit For statement inside the loop structureGenerally the Exit For statement is part of an If

statement

Page 28: Chapter 07

7-28

Making Entries Appear Selected

When a user tabs into a text box that already has an entry, the user-friendly approach is to select the text

If a text box fails validation, select the textSelecting the entry in a Text Box

Use the SelectAll methodGood location is in the text box’s Enter event

Selecting an entry in a List BoxSet the SelectedIndex property to make a single item in

a list box appear selected

Page 29: Chapter 07

7-29

Sending Information to the Printer

Components appear in the Printing tab of the toolbox

Most professional programmers using VB use a separate utility program to format printer reports

Several companies sell utilities that do a nice job designing and print reports

VB Professional Edition and Enterprise Edition include Crystal Reports for creating reports from database files

Page 30: Chapter 07

7-30

The PrintDocument Component

Appears in the Component Tray

Execute the Print method to start printing

The code belongs in the Click event procedure for the Print button or menu item that can be selected to begin printing

Page 31: Chapter 07

7-31

Setting Up the Print Output

PrintPage event is fired once for each page to be printed, and is referred to as callback

BeginPrint and EndPrint are also fired at the beginning and end of the printing

PrintPage event includes the argument e as System.Drawing.Printing.PrintPageEventArgs

Properties of the PrintPageEventArgs are useful for handling page margins and sending strings of text to the page

Page 32: Chapter 07

7-32

The Graphics Page

Set up graphics page in memory and then the page is sent to the printer

Can contain strings of text and graphic elements

Specify the exact X and Y coordinates of each element to be printed on the page

X coordinate is the horizontal distance from across the page; the Y coordinate is the vertical distance from the top of the page

Page 33: Chapter 07

7-33

Using the DrawString Method

Used to send a line of text to the graphics pageBelongs to the Graphics object of the

PrintPageEventArgs argumentIs an overloaded method so there are several

forms for calling the methodArguments for the DrawString method include:

What to printWhat font and color to print inWhere to print

Set up the Font and X/Y coordinates to be used before executing the DrawString method

Page 34: Chapter 07

7-34

The DrawString Method

General Form

Examples

DrawString(StringToPrint, Font, Brush, Xcoordinate, Ycoordinate)

e.Graphics.DrawString(printLineString, printFont, Brushes.Black, _ horizontalPrintLocationSingle, verticalPrintLocationSingle)e.Graphics.DrawString("My text string", myFont, Brushes.Black, _ 100.0, 100.0)e.Graphics.DrawString(nameTextBox.Text, New Font("Arial", 10), _ Brushes.Red, leftMarginSingle, currentLineSingle)

Page 35: Chapter 07

7-35

Setting the X and Y Coordinates

For each print line, specify X and Y coordinatesCreate variables declared as Single data type to

set the X and Y values

Dim horizontalPrintLocationSingle As SingleDim verticalPrintLocationSingle As Single

Page 36: Chapter 07

7-36

PrintPageEventArgs

PrintPageEventArgs argument has several useful properties and are used to determine the present settingsMarginBoundsPageBoundsPageSettings

Page 37: Chapter 07

7-37

Printing the Contents of List Box

Techniques for printing, a loop, and the list box properties can be combined to send the contents of a list box to the printer

Use the Items.Count property as the number of iterations to make are a known

Items collections allows for printing out the actual values from the list

Page 38: Chapter 07

7-38

Aligning Decimal Columns

It is important to align the decimal points of numeric data

Proportional fonts make aligning decimal points trickyFormat each number to be printed and measure the

length of the formatted stringDeclare an object as a SizeF Structure-has a Width

propertyUse MeasureString method of the Graphics class to

determine the width of a formatted string in pixels

Page 39: Chapter 07

7-39

Aligning Decimal ColumnsCode Example (1 of 2)

' SizeF structure for font size info. Dim fontSizeF As New SizeF( ) ' Set X for left-aligned column. horizontalPrintLocationSingle = 200 ' Set ending position for right-aligned column. columnEndSingle = 500 ' Format the number. formattedOutputString= amountDecimal.ToString("C") ' Calculate the X position of the amount. ' Measure string in this font. fontSizeF= e.Graphics.MeasureString(formattedOutputString, _ printFont)

Page 40: Chapter 07

7-40

Aligning Decimal ColumnsCode Example (2 of 2)

' SizeF structure for font size info (cont). ' Subtract width of string from the column position. columnXSingle = columnEndSingle - fontSizeF.Width ' Set up the line--each element separately. e.Graphics.DrawString("The Amount = ", printFont, _ Brushes.Black, horizontalPrintLocationSingle, _ verticalPrintLocationSingle) e.Graphics.DrawString(formattedOutputString, printFont, _ Brushes.Black, columnXSingle, verticalPrintLocationSingle) ' Increment line for next line. verticalPrintLocationSingle += lineHeightSingle

Page 41: Chapter 07

7-41

Displaying a Print Preview

The PrintPreviewDialog component is the key to print preview

Add PrintPreviewDialogcomponent to formAppears in the Component TrayDefault name is fine

Assign in code the same PrintDocument object you are using for printing

Execute the ShowDialog method of the PrintPreviewDialog component

Page 42: Chapter 07

7-42

PrintPreviewDialog Component

Page 43: Chapter 07

7-43

The Using Block

System resources such as fonts can be access inside of a Using block

Variables that are declared in a using block are only accessible within that block

The advantage of declaring a variable inside a Using block is that system resources are released as soon as the block terminates

Page 44: Chapter 07

7-44

Printing Multiple Pages

The PrintDocument’s PrintPage event fires once for each page

Set the HasMorePages property of the PrintPageEventArgs argument to True to print more than one page

Page 45: Chapter 07

7-45

Using Static Variables

Static local variables retain their value for the life of the project

Can be useful forRunning totalsRunning countsBoolean switchesStoring current page number/count when printing

multiple pages