Microsoft Visual Basic: Reloaded Chapter Seven More on the Repetition Structure
Transcription
Microsoft Visual Basic: Reloaded Chapter Seven More on the Repetition Structure
Microsoft Visual Basic: Reloaded Chapter Seven More on the Repetition Structure Overview ■ ■ ■ ■ ■ Introducing the Interest Calculator Application For...Next repetition statements Select the existing text in a text box Code the TextChanged event procedure Code a list box’s SelectedValueChanged and SelectedIndexChanged event procedures ■ Code the TextChanged event procedure for a combo box ■ Store images in an image list control 2009 Pearson Education, Inc. All rights reserved. Interest Calculator Application Application Requirements You are investing $1,000.00 in a savings account that yields 5% interest compounded annually. Assuming that you leave all interest on deposit, calculate and display the amount of money in the account at the end of each year over a period of n years. To compute these amounts, use the following formula: a = p (1 + r)n where p is the original amount of money invested (the principal) r is the annual interest rate (for example, .05 is equivalent to 5%) n is the number of years a is the amount on deposit at the end of the nth year. 2009 Pearson Education, Inc. All rights reserved. Interest Calculator Application Click to increase number of years NumericUpDown control Click to decrease number of years Multiline TextBox displays application results Figure 11.2 | Output of completed Interest Calculator application. 2009 Pearson Education, Inc. All rights reserved. Designing the Interest Calculator Application When the user clicks the Calculate Button Get the values for the principal, interest rate and years entered by the user Store a header String to be added to the output TextBox For each year (starting at 1 and ending with the number of years entered) Calculate the current value of the investment Append the year and the current value of the investment to the String that will be displayed in the output TextBox Display the final output in the output TextBox 2009 Pearson Education, Inc. All rights reserved. For...Next Repetition Statement ■ The For...Next repetition statement makes it easier for you to write code to perform counter-controlled repetition. ■ It takes less time to code and is easier to read. ■ The For...Next header (Fig. 11.4) specifies all four essential elements for counter-controlled repetition. Figure 11.4 | For...Next header components. 2009 Pearson Education, Inc. All rights reserved. For...Next Repetition Statement For counter As Integer = 2 To 10 Step 2 body statement(s) Next ■ A For...Next statement begins with the keyword For. ■ The statement declares and initializes a control variable. Note that you do not use the Dim keyword. ■ Following the initial value of the control variable is the keyword To, followed by the final value of the control variable. 2009 Pearson Education, Inc. All rights reserved. Examples Using the For...Next Statement ■ The following examples demonstrate different ways of varying the control variable in a For...Next statement. Vary the control variable from 1 to 100 in increments of 1. For i As Integer = 1 To 100 or For i As Integer = 1 To 100 Step 1 Vary the control variable from 100 to 1 in increments of -1 (decrements of 1). For i As Integer = 100 To 1 Step -1 2009 Pearson Education, Inc. All rights reserved. Examples Using the For...Next Statement Vary the control variable from 7 to 77 in increments of 7. For i As Integer = 7 To 77 Step 7 Vary the control variable from 20 to -20 in increments of -2 (decrements of 2). For i As Integer = 20 To -20 Step -2 Vary the control variable over the sequence of the following values: 2, 5, 8, 11, 14, 17, 20. For i As Integer = 2 To 20 Step 3 Vary the control variable over the sequence of the following values: 99, 88, 77, 66, 55, 44, 33, 22, 11, 0. For i As Integer = 99 To 0 Step -11 2009 Pearson Education, Inc. All rights reserved. 1 For years As Integer = 2 To 5 2 months = 12 * years ' calculate payment period 3 4 ' calculate payment value 5 6 7 8 9 value = Pmt(monthlyRate, months, -loanAmount) ' display payment value paymentsListBox.Items.Add(months & ControlChars.Tab & _ ControlChars.Tab & String.Format("{0:C}", value)) 10 Next 2009 Pearson Education, Inc. All rights reserved. The For...Next Statement (cont'd.) ■ Can use For…Next or Do…Loop for a countercontrolled loop ■ With Do…Loop, you must: Declare and initialize the counter variable Update the counter variable Include an appropriate comparison in the Do clause ■ For…Next statement handles the declaration, initialization, update, and comparison tasks Is more convenient to use 2009 Pearson Education, Inc. All rights reserved. The For...Next Statement (cont'd.) Figure 7-7: Comparison of the For…Next and Do…Loop statements 2009 Pearson Education, Inc. All rights reserved. NumericUpDown Controls NumericUpDown control Figure 11.9 | NumericUpDown control added to Interest Calculator application. 2009 Pearson Education, Inc. All rights reserved. NumericUpDown Controls ■ By default, this control sets 0 as the minimum and 100 as the maximum. To change these values, set the Maximum property of the Years: NumericUpDown control to 10. Then set its Minimum property to 1. If the user inputs a value less than Minimum or greater than Maximum, the value is automatically set to the minimum or maximum value. ■ The Increment property specifies by how much the current number in the NumericUpDown control changes when the user clicks the control’s up or down arrow. This application uses the default value, 1. 2009 Pearson Education, Inc. All rights reserved. Adding and Customizing a Multiline TextBox with a Scrollbar ■ Add a TextBox named resultTextBox (Fig. 11.10). Change the TextBox’s Multiline property value to True. Set the ReadOnly property to True. Multiline TextBox Vertical scrollbar (disabled) Figure 11.10 | Multiline TextBox with vertical scrollbar added to the Form. 2009 Pearson Education, Inc. All rights reserved. GUI Design Tips ■ If a TextBox will display multiple lines of output, set the Multiline property to True and left align the output by setting the TextAlign property to Left. ■ If a multiline TextBox will display many lines of output, limit the TextBox height and use a vertical scrollbar to allow users to view additional lines of output. ■ If a TextBox is used to display output, set the ReadOnly property to True to ensure that the user cannot change the output. 2009 Pearson Education, Inc. All rights reserved. 1 Public Class InterestCalculatorForm 2 3 ' handles Calculate Button's Click event Private Sub calculateButton_Click(ByVal sender As System.Object, _ 4 5 ByVal e As System.EventArgs) Handles calculateButton.Click 6 7 ' declare variables to store user input Dim principal As Decimal ' store principal 8 9 Dim rate As Double ' store interest rate Dim amount As Decimal ' store each calculation 10 11 Dim output As String ' store output 12 13 ' retrieve user input principal = Val(principalTextBox.Text) 14 15 rate = Val(rateTextBox.Text) 2009 Pearson Education, Inc. All rights reserved. 16 ' set output header 17 18 output = "Year" & ControlChars.Tab _ & "Amount on Deposit" & ControlChars.CrLf 19 20 ' calculate amount after each year and append to string 21 22 For yearCounter = 1 To yearUpDown.Value amount = _ principal * ((1 + rate / 100) ^ yearCounter) 23 24 output &= (yearCounter & ControlChars.Tab & _ String.Format("{0:C}", amount) & ControlChars.CrLf) 25 26 Next 27 28 resultTextBox.Text = output ' display result 29 End Sub ' calculateButton_Click 30 End Class ' InterestCalculatorForm 2009 Pearson Education, Inc. All rights reserved. Selecting the Existing Text in a Text Box ■ SelectAll method: selects all text in a text box for replacement typing User only needs to type the new value ■ Enter event: occurs when the text box receives the focus When the user tabs to the control When the user uses the control’s access key When the Focus method sends the focus to the control When the user clicks in the text box 2009 Pearson Education, Inc. All rights reserved. Selecting the Existing Text in a Text Box (cont’d.) Figure 7-17: Loan text box’s Enter event procedure 2009 Pearson Education, Inc. All rights reserved. Selecting the Existing Text in a Text Box (cont’d.) Figure 7-18: Result of processing the text box’s Enter event procedure 2009 Pearson Education, Inc. All rights reserved. Selecting the Existing Text in a Text Box (cont’d.) ■ Entering a new value in the Loan text box does not update the monthly payments until the user clicks the Calculate button – May cause confusion Figure 7-19: New loan amount entered in the Loan text box 2009 Pearson Education, Inc. All rights reserved. Coding the TextChanged Event Procedure ■ TextChanged event – Occurs when a change is made in a control’s Text property – Change may be made by user or the program 2009 Pearson Education, Inc. All rights reserved. Coding the TextChanged Event Procedure Figure 7-21: Result of processing the text box’s TextChanged event procedure 2009 Pearson Education, Inc. All rights reserved. Coding the SelectedValueChanged and SelectedIndexChanged Event Procedures Figure 7-22: The list box’s SelectedValueChanged and SelectedIndexChanged event procedures 2009 Pearson Education, Inc. All rights reserved. Including a Combo Box in an Interface ■ Combo Box control: Similar to a list box with a list of choices List portion may be hidden May contain a text field that allows the user to type an entry that is not on the list ■ Three styles of combo boxes, controlled by the DropDownStyle property: Simple DropDown (the default) DropDownList 2009 Pearson Education, Inc. All rights reserved. Using a Combo Box in an Interface Figure 7-23: Examples of the three styles of combo boxes 2009 Pearson Education, Inc. All rights reserved. Figure 7-24: Code used to fill the combo boxes in Figure 7-23 with values 2009 Pearson Education, Inc. All rights reserved. Using a Combo Box in an Interface (cont'd.) ■ Items.Add method: used to add items to a combo box ■ SelectedItem property: contains the value of the selected item in the list ■ Text property: contains the value that appears in the text portion of the control (item selected or typed in) ■ Items.count property: used to obtain the number of items in the combo box ■ Sorted property: used to sort the items in the list 2009 Pearson Education, Inc. All rights reserved. Using a Combo Box in an Interface (cont'd.) Figure 7-25: Sample run of the Payment Calculator application using a combo box 2009 Pearson Education, Inc. All rights reserved. Figure 7-26: Code for the Payment Calculator application shown in Figure 7-25 2009 Pearson Education, Inc. All rights reserved. Figure 7-26: Code for the Payment Calculator application shown in Figure 7-25 (cont’d.) 2009 Pearson Education, Inc. All rights reserved. Using an Image List Control ■ Image List control: Stores a collection of images Does not appear on the form; appears in the component tray ■ Add images to the control using the Images Collection Editor window 2009 Pearson Education, Inc. All rights reserved. Using an Image List Control (cont’d.) Figure 7-27: Image Viewer application 2009 Pearson Education, Inc. All rights reserved. Using an Image List Control (cont’d.) Figure 7-29: Completed Images Collection Editor window in the Image Viewer application 2009 Pearson Education, Inc. All rights reserved. Using an Image List Control (cont’d.) Figure 7-30: How to refer to an image in the Images collection 2009 Pearson Education, Inc. All rights reserved. Using an Image List Control (cont’d.) Figure 7-31: Sample run of the Image Viewer application 2009 Pearson Education, Inc. All rights reserved. Using an Image List Control (cont’d.) Figure 7-32: Code entered in the View button’s Click event procedure 2009 Pearson Education, Inc. All rights reserved.