450 likes | 610 Views
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
E N D
aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhfaslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf aslkjdhfalskhjfgalsdkfhalskdhjfglaskdhjflaskdhjfglaksjdhflakshflaksdhjfglaksjhflaksjhf
7 Chapter 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
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
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
List Boxes and ComboBoxes (2 of2) Various Styles of List and Combo boxes
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
Filling a List/Using the Properties Window • Design time in Properties window • Items property • Click on ellipses to open StringCollection Editor • Type list items, end each line withEnter key • Run time methods • Items.Add--OR-- • Items.Insert
Filling a List - Design Time Click ellipses button to open
Using the Items.Add Method • Use to add new items to the list at run time • General 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)
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 Object.Items.Insert(IndexPosition, ItemValue) Me.schoolsListBox.Items.Insert(0, "Harvard") Me.majorsComboBox.Items.Insert(1, Me.majorsComboBox.Text)
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
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
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( )
Removing an Item from a List • Use the Items.RemoveAt method to remove an item by index from the list • General Form • Examples Object.Items.RemoveAt(IndexPosition) ‘ 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)
The Items.Remove Method • Use the Items.Remove method to remove an item by specifying the text • General Form • Examples Object.Items.Remove(TextString) ‘ 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)
Clearing a List • Use the Items.Clear method to clear all items and empty a combo box or list box • General Form • Examples Object.Items.Clear( ) Me.schoolsListBox.Items.Clear( ) Me.majorsComboBox.Items.Clear( )
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
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
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
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
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
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
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
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
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 theExit Do orExit For statement inside the loop structure • Generally the Exit Do or Exit For statement is part of an If statement
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 orContinue 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
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
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
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
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
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
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
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)
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
PrintPageEventArgs • PrintPageEventArgs argument has several useful properties and are used to determine the present settings • MarginBounds • PageBounds • PageSettings
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
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)
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
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
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
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