Transcript Bradley

aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
7-1
Chapter
7
Lists, Loops, and Printing
McGraw-Hill
© 2006 The McGraw-Hill Companies, Inc. All rights reserved.
Objectives (1 of 2)
 Create and use list boxes and combo boxes
 Differentiate among the available types of combo
boxes
 Enter items into list boxes using the Items collection in
the Properties window
 Add and remove items in a list at run time
 Determine which item in a list is selected
 Use the Items.Count property to determine the number
of items in a list
7-3
Objectives (2 of 2)
 Display a selected item from a list
 Use Do/Loops and For/Next statements to iterate
through a loop
 Terminate a loop with the Exit statement
 Skip to the next iteration of a loop by using the
Continue statement
 Send information to the printer or the Print Preview
window using the PrintDocument class
7-4
ListBoxes and ComboBoxes (1 of 2)
 Have most of the same properties and operating in a
similar fashion
 An exception is that a combo box control has a
DropDown Style property
 Provide the user with a list of items to select from
 Various styles, choose based on
 Space available
 Need to select from an existing list
 Need to add to a list
7-5
List Boxes and Combo
Boxes (2 of2)
Various Styles of List and Combo boxes
7-6
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 items
 Removing items
 Referring to individual elements
 Counting items
 Clearing the collection
7-7
Filling a List/Using the Properties Window
 Design time in Properties window
 Items property
 Click on ellipses to open String
Collection Editor
 Type list items, end each line with
Enter key
 Run time methods
 Items.Add
--OR- Items.Insert
7-8
Filling a List - Design Time
Click ellipses button to open
7-9
Using the Items.Add Method
 Use to add new items to the list at run time
 General Form
Object.Items.Add(ItemValue)
 Examples
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)
7-10
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
Object.Items.Insert(IndexPosition, ItemValue)
 Examples
Me.schoolsListBox.Items.Insert(0, "Harvard")
Me.majorsComboBox.Items.Insert(1, Me.majorsComboBox.Text)
7-11
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
7-12
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 0
For example, if there are five items in a list:
Items.Count = 5
AND
Highest Index = 4
7-13
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
Me.schoolsListBox.Items(5) = "University of California"
' Next line references the currently selected item.
selectedFlavorString = flavorListBox.Items(flavorListBox.Selected Index).ToString( )
7-14
Removing an Item from a List
 Use the Items.RemoveAt method to remove an
item by index from the list
 General Form
Object.Items.RemoveAt(IndexPosition)
 Examples
‘ Remove the first line from the list.
Me.namesListBox.Items.RemoveAt(0)
‘ Remove the item in position indexInteger.
Me.schoolsComboBox.Items.RemoveAt(indexInteger)
‘ Remove the currently selected item.
Me.chComboBox.Items.RemoveAt(chComboBox.SelectedIndex)
7-15
The Items.Remove Method
 Use the Items.Remove method to remove an item by
specifying the text
 General Form
Object.Items.Remove(TextString)
 Examples
‘ Remove the specified item.
Me.namesListBox.Items.Remove("My School")
‘ Remove the matching item.
Me.schoolsComboBox.Items.Remove(schoolTextBox.Text)
‘ Removes the currently selected item.
Me.coffeeComboBox.Items.Remove(coffeeComboBox.Text)
7-16
Clearing a List
 Use the Items.Clear method to clear all items and
empty a combo box or list box
 General Form
Object.Items.Clear( )
 Examples
Me.schoolsListBox.Items.Clear( )
Me.majorsComboBox.Items.Clear( )
7-17
List Box and Combo Box Events
 SelectedIndexChanged Event
 Default event for both controls
 Happens when user selects an item in the box
 TextChanged Event
 Occurs when user types text into combo box
 List box does not have TextChanged Event
 Enter Event (control receives focus)
 Fires when a user tabs from control to control
 Leave Event (control loses focus)
 Triggers when a user tabs between controls
7-18
Do/Loops
 A loop repeats a series of instructions
 An iteration is a single execution of the statement(s) in
the loop
 Used when the exact number of iterations is unknown
 A 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
7-19
The Do and Loop Statements -General
Form
Do {While |Until} condition
' Statements in loop.
Loop
Top of Loop
Condition,
Pretest
--OR-Do
' Statements in loop.
Loop {While | Until} condition
Bottom of
Loop
Condition,
Posttest
7-20
Pretest vs. Posttest
 Pretest, loop may never be executed since tested
BEFORE running
Do While … Loop
Do Until … Loop
 Posttest, loop will always be executed at least once
Do … Loop While
Do … Loop Until
7-21
Pretest vs. Posttest Diagram
7-22
The Boolean Data Type Revisited
 Can help when searching a list for a specific value
 Boolean variable is always in one of two states; True
or False
 When a particular situation occurs, set Boolean variable
to True
 Use a loop to check for True
 Many programmers refer to Boolean variables as
switches or flags
 Switches have two states – on or off
 Flags are considered either up or down
7-23
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
7-24
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
7-25
For/Next Loop Diagram
7-26
More Details about For/Next Loops
 Negative Increment or Counting Backwards is possible
 Set the Step increment to a negative number
 Conditions Satisfied before Entry
 Statements in the body might not be executed at all
 Altering the Values of the Loop Control Variables
 Altering the InitialValue, TestValue, and Increment in the
body is not allowed
 Altering the LoopIndex is allowed, although it is
considered a poor programming practice
 Can lead to endless or infinite loops
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 Do or Exit For statement inside the loop
structure
 Generally the Exit Do or Exit For statement is part of
an If statement
7-28
Skipping to the Next Iteration of a Loop
 In some situations you may need to skip to the next
iteration of the loop
 The Continue Do or Continue For statement
transfers control to the last statement in the loop, and
retests the loop exit condition
 Generally the Continue Do or Continue For statement
is part of an If statement
7-29
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 text
 Selecting the entry in a Text Box
 Use the SelectAll method
 Good location is in the text box’s Enter event
 Selecting an entry in a List Box
 Set the SelectedIndex property to make a single item in
a list box appear selected
7-30
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
7-31
The PrintDocument Component
 The PrintDocument
component is used for printing
outputs of VB.NET projects
 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
7-32
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
7-33
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
7-34
Using the DrawString Method
 Used to send a line of text to the graphics page
 Belongs to the Graphics object of the
PrintPageEventArgs argument
 Is an overloaded method so there are several
forms for calling the method
 Arguments for the DrawString method include:
 What to print
 What font and color to print in
 Where to print
 Set up the Font and X/Y coordinates to be used
before executing the DrawString method
7-35
The DrawString Method
General Form
DrawString(StringToPrint, Font, Brush, Xcoordinate, Ycoordinate)
Examples
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)
7-36
Setting the X and Y Coordinates
 For each print line, specify X and Y coordinates
 Create variables declared as Single data type to
set the X and Y values
Dim horizontalPrintLocationSingle As Single
Dim verticalPrintLocationSingle As Single
7-37
PrintPageEventArgs
 PrintPageEventArgs argument has several useful
properties and are used to determine the present
settings
 MarginBounds
 PageBounds
 PageSettings
7-38
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
' Print out all items in the coffeeComboBox list
For listIndexInteger = 0 To Me.coffeeComboBox.Items.Count - 1
' Set up a line
printLineString = Me.coffeeComboBox.Items(listIndexInteger).ToString()
' Send the line to the graphics page object
e.Graphics.DrawString(printLineString, printFont, Brushes.Black,
horizontalPrintLocationSingle, verticalPrintLocationSingle)
' Increment the Y position for the next line
verticalPrintLocationSingle += lineHeightSingle
Next
7-39
Printing the Selected Item from a List
 When an item is selected in a list box or a combo box,
the Text property holds the selected item
' Set up the selected line
printLineString = "Coffee: " & Me.coffeeComboBox.Text & _
"
Syrup: " & Me.syrupListBox.Text
' Send the line to the graphics page object
e.Graphics.DrawString(printLineString, printFont, Brushes.Black,
horizontalPrintLocationSingle, verticalPrintLocationSingle)
7-40
Displaying a Print Preview
 The PrintPreviewDialog component is the key to
print preview
 Add PrintPreviewDialog component to form
 Appears in the Component Tray
 Default name is fine
 Assign in code the same PrintDocument object
you are using for printing
 Execute the ShowDialog method of the
PrintPreviewDialog component
7-41
PrintPreviewDialog Component
7-42
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
7-43
Other Issues
 Printing numeric data
 Alignment of the decimal values is important
 Format each number as you want it to print, and then
measure the length of the formatted string
 Printing multiple pages
 If the printing content extends beyond
e.MarginsBound.Bottom along the Y axis, then you have
to explicitly define printing of multiple pages
 The e.HasMorePages property needs to be set to True
7-44
Using Static Variables
 Static local variables retain their value for the life of the
project
 Can be useful for
 Running totals
 Running counts
 Boolean switches
 Storing current page number/count when printing
multiple pages
7-45