Presentation is loading. Please wait.

Presentation is loading. Please wait.

McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. Lists, Loops, and Printing Chapter 7.

Similar presentations


Presentation on theme: "McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. Lists, Loops, and Printing Chapter 7."— Presentation transcript:

1 McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. Lists, Loops, and Printing Chapter 7

2 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 7-4 Filling a List — Design Time Click ellipses button to open

5 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 7-6 List Boxes and Combo Boxes (2 of2) Various Styles of List and Combo boxes

7 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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) SchoolsListBox.Items.Add("Harvard " ) SchoolsListBox.Items.Add( " Stanford " ) SchoolsListBox.Items.Add(schoolsTextBox.Text) MajorsComboBox.Items.Add(majorsComboBox.Text) MajorsComboBox.Items.Add(majorString)

10 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 SchoolsListBox.Items.Insert(0, " Harvard " ) MajorsComboBox.Items.Insert(1, MajorsComboBox.Text) Object.Items.Insert(IndexPosition, ItemValue)

11 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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.

12 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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. SchoolsListBox.Items(5) = "University of California" MajorLabel.Text = MajorsComboBox.Items(IndexInteger) SelectedMajorLabel.Text = MajorsComboBox.Items(MajorsComboBox.SelectedIndex) SelectedMajorLabel.Text = MajorsComboBox.Text

14 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 NamesListBox.Items.RemoveAt(0) ' Remove the item in position IndexInteger. SchoolsComboBox.Items.RemoveAt(IndexInt eger) CoffeeComboBox.Items.RemoveAt(CoffeeCo mboBox.SelectedIndex) Object.Items.RemoveAt(IndexPosition)

15 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 7-15 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)

16 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 SchoolsListBox.Items.Clear( ) MajorsComboBox.Items.Clear( ) Object.Items.Clear( )

17 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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.

19 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 7-21 Pretest vs. Posttest Diagram

22 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 7-25 For/Next Loop Diagram

26 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 7-26 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 structure. Generally, the Exit For statement is part of an If statement.

27 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 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.

28 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 7-30 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.

31 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 7-35 PrintPageEventArgs PrintPageEventArgs argument has several useful properties that are used to determine the present settings. – MarginBounds – PageBounds – PageSettings

36 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 7-41 PrintPreviewDialog Component

42 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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.

43 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 7-43 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.

44 McGraw-Hill© 2009 The McGraw-Hill Companies, Inc. All rights reserved. 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


Download ppt "McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. Lists, Loops, and Printing Chapter 7."

Similar presentations


Ads by Google