Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 7 Lists, Loops, and Printing Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill.

Similar presentations

Presentation on theme: "Chapter 7 Lists, Loops, and Printing Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill."— Presentation transcript:

1 Chapter 7 Lists, Loops, and Printing Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

2 7-2 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.

3 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.

4 7-4 Filling a List Design Time Click ellipses button to open

5 7-5 ListBoxes and ComboBoxes (1 of 2) Have most of the same properties and operate in a similar fashion An exception is that a combo box control has a DropDownStyle 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

6 7-6 List Boxes and Combo Boxes (2 of2) Various Styles of List and Combo boxes

7 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 items Removing items Referring to individual elements Counting items Clearing the collection

8 7-8 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

9 7-9 Using the Items.Add Method Use to add new items to the list at run time. General Form Examples Object.Items.Add(ItemValue) ListBoxSchools.Items.Add("Harvard " ) ListBoxSchools.Items.Add( " Stanford " ) ListBoxSchools.Items.Add(SchoolsTextBox.Text) ComboBoxMajors.Items.Add(MajorsComboBox.Text) ComboBoxMajors.Items.Add(MajorString)

10 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 Examples ListBoxSchools.Items.Insert(0, " Harvard " ) ComboBoxMajors.Items.Insert(1, MajorsComboBox.Text) Object.Items.Insert(IndexPosition, ItemValue)

11 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 (with value 0 to Count – 1) to select an item in list or (with -1) deselect all items in code.

12 7-12 The Items.Count Property to determine number of items in the list Remember: Items.Count is always one more than the highest possible SelectedIndex, because indexes begin with 0 For example, if there are five items in a list: Items.Count = 5AND Highest Index = 4

13 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. ListBoxSchools.Items(5) = "University of California" LabelMajor.Text = ComboBoxMajors.Items(IndexInteger) LabelSelectedMajor.Text = ComboBoxMajors.Items(ComboBoxMajors.SelectedIndex) LabelSelectedMajor.Text = ComboBoxMajors.Text

14 7-14 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 Examples ListBoxNames.Items.RemoveAt(0) ' Remove the item in position IndexInteger. ComboBoxSchools.Items.RemoveAt(IndexInteger) ComboBoxCoffee.Items.RemoveAt(ComboBoxCoffee.SelectedIndex) Object.Items.RemoveAt(IndexPosition)

15 7-15 The Items.Remove Method Use the Items.Remove method to remove an item by specifying the text. General Form Examples ListBoxNames.Items.Remove("My School " ) ComboBoxSchools.Items.Remove(TextBoxSchool.Text) ' Next line removes the currently selected item. ComboBoxCoffee.Items.Remove(ComboBoxCoffee.Text) Object.Items.Remove(TextString)

16 7-16 Clearing a List Use the Items.Clear method to clear all items and empty a combo box or list box. General Form Examples ListBoxSchools.Items.Clear( ) ComboBoxMajors.Items.Clear( ) Object.Items.Clear( )

17 7-17 List Box and Combo Box Events In the Editor window, select the control name in the Class Name list (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 you. TextChanged Event Occurs when user types text into combo box List 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 as user tabs between controls.

18 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 (pretest)or the bottom (posttest) of the loop.

19 7-19 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/Entry test Bottom of Loop Condition, Posttest/ Exit

20 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

21 7-21 Pretest vs. Posttest Diagram

22 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.

23 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.

24 7-24 The For and Next Statements General Form For LoopIndex [As DataType] = 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.

25 7-25 For/Next Loop Diagram

26 7-26 Exiting Loops In some situations, you may need to exit the loop prematurely. Click on the forms 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 structure. Generally, the Exit For statement is part of an If statement.

27 7-27 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 boxs Enter event Selecting an entry in a List Box Set the SelectedIndex property to make a single item in a list box appear selected.

28 7-28 Sending Information to the Printer Components appear in the Printing tab of the toolbox. Most professional programmers use a separate utility program to format printer reports. Several companies sell utilities that do a nice job designing and printing reports. VB Professional Edition and Enterprise Edition include Crystal Reports for creating reports from database files.

29 7-29 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.

30 7-30 Setting Up the Print Output PrintPage event is fired once for each page to be printed, and is referred to as a 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.

31 7-31 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.

32 7-32 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.

33 7-33 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)

34 7-34 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

35 7-35 PrintPageEventArgs PrintPageEventArgs argument has several useful properties that are used to determine the present settings. – MarginBounds – PageBounds – PageSettings

36 7-36 Printing the Contents of a 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. Items collection allows printing out the actual values from the list.

37 7-37 Aligning Decimal Columns It is important to align the decimal points of numeric data. Proportional fonts make aligning decimal points tricky. Format each number to be printed and measure the length of the formatted string. Declare an object as a SizeF Structure which has a Width property. Use MeasureString method of the Graphics class to determine the width of a formatted string in pixels.

38 7-38 Aligning Decimal Columns Code 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)

39 7-39 Aligning Decimal Columns Code 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

40 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.

41 7-41 PrintPreviewDialog Component

42 7-42 The Using Block System resources such as fonts can be access inside 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. Using HeadingFont as New Font("Arial", 14, FontStyle.Bold e.Graphics.DrawString(Flavors, HeadingFont, Brushes.Black, HorizontalPrintLocationSingle, VerticalPrintlocationSingle) End Using

43 7-43 Printing Multiple Pages The PrintDocuments PrintPage event fires once for each page. Set the HasMorePages property of the PrintPageEventArgs argument to True to print more than one page.

44 7-44 Using Static Variables in Printing 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

45 Chapter 7 Lists, Loops, and Printing Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill

Download ppt "Chapter 7 Lists, Loops, and Printing Copyright © 2011 by The McGraw-Hill Companies, Inc. All Rights Reserved. McGraw-Hill."

Similar presentations

Ads by Google