1 Chapter 3 – Fundamentals of Programming in Visual Basic 3.1 Visual Basic Controls 3.2 Visual...

Preview:

Citation preview

1

Chapter 3 – Fundamentals of Programming in Visual Basic

• 3.1 Visual Basic Controls

• 3.2 Visual Basic Events

• 3.3 Numbers

• 3.4 Strings

• 3.5 Input and Output

2

3.1 Visual Basic Controls• Invoking Visual Basic • Text Box Control• Button Control• Label Control• List Box Control• Name Property • Fonts / Auto Hide• Positioning and Aligning Controls

IN-CLASS EXAMPLE

Make a small program or two

The following slides show screen shots of the compiler, I’ll keep them up for review.

Section 3.3 Numbers Next

3

4

Visual Basic Start Page

5

Start a New Project

6

New Project Dialog Box

7

Initial Visual Basic Screen

8

Toolbox

9

3 Ways to Place a Control from the Toolbox onto the Form Window

• Double-click

• Drag

• Click, Point, and Drag

10

Four Controls at Design Time

Text box

To select a control, click on it. Sizing handles will appear when a control is selected.

11

Text Box Control• Used for input and output• When used for output, ReadOnly

property is set to True

Sizing handles

Tasks button

12

Properties Window

Categorized view Alphabetical view

Press F4 to display the

Properties window for the selected

control.

13

Properties Window

PropertiesSettings

Selected control

14

Some Often Used Properties

• Text

• Autosize

• Font.Name

• Font.Size

• ForeColor

• BackColor

• ReadOnly

15

Setting Properties

• Click on property name in left column.

• Enter its setting into right column by typing or selecting from options displayed via a button or ellipses.

16

Setting the ForeColor Property

1. Click on ForeColor.

2. Click on button at right of settings box.

3. Click on Custom tab to obtain display shown.

4. Click on a color.

17

Font Property1. Click on

Font in left column.

2. Click on ellipsis at right of settings box to obtain display shown,

3. Make selections.

18

Button Control• The caption on the button should indicate

the effect of clicking on the button.• Text property determines caption.

19

Add an "access key"

20

Label Control• Used to identify the contents of a text box.• Text property specifies caption.• By default, label automatically resizes to

accommodate caption on one line.• When the AutoSize property is set to False,

label can be resized manually. Used primarily to obtain a multi-rowed label.

21

List Box Control

• Initially used to display several pieces of output.

• Later used to select from a list.

22

The Name Property• How the programmer refers to a control in

code• Setting for Name property near top of

Properties window.• Name must begin with a letter, be less than

215 characters long, and may include numbers and letters.

• Use appropriate 3- or 4-character naming prefix

23

Control Name Prefixes

Control Prefix Example

button btn btnCompute

label lbl lblAddress

text box txt txtAddress

list box lst lstOutput

24

Renaming the Form

• Initial name is Form1

• The Solution Explorer window lists a file named Form1.vb.

• To rename the form, change the name of this file to newName.vb

• newName should begin with prefix frm.

25

Fonts

• Proportional width fonts take up less space for "I" than for "W" – like Microsoft Sans Serif

• Fixed-width fonts take up the same amount of space for each character – like Courier New

• Fixed-width fonts are good for tables.

26

Auto Hide

• Hides Toolbox when not in use• Vertical push pin icon indicates auto hide is

disabled.• Click the push pin to make it horizontal and

enable auto hide.

Push pin

27

Positioning Controls

Proximity line

28

Aligning Controls

Snap line

29

Aligning Controls

Snap line

30

3.2 Visual Basic Events

• An Event Procedure Walkthrough

• Properties and Event Procedures of the Form

• The Header of an Event Procedure

31

Event

• An event is an action, such as the user clicking on a button

• Usually, nothing happens in a Visual Basic program until the user does something and generates an event.

• What happens is determined by statements.

32

Sample Statements

• txtBox.ForeColor = Color.Red

• txtBox.Visible = True

• txtBox.Text = “Hello World”

General Form:

controlName.property = setting

33

Sample Form

txtFirst

txtSecond

btnRed

34

Focus

• When you click on a text box, a cursor appears in the text box, and you can type into the text box.

• Such a text box is said to have the focus.

• If you click on another text box, the first text box loses the focus and the second text box receives the focus.

35

Examples of Events

• btnShow.Click

• txtBox.TextChanged

• txtBox.Leave

General Form:

controlName.event

36

The three steps in creating a Visual Basic program:

1. Create the interface; that is, generate, position, and size the objects.

2. Set properties; that is, configure the appearance of the objects.

3. Write the code that executes when events occur.

37

Code Window

Method Name box

Class Name box

Page tab

38

Structure of an Event Procedure

Private Sub objectName_event(...)

Handles objectName.event

statements

End Sub

(...) is filled automatically with (ByVal sender As System.Object, ByVal e As System.EventArgs)

Header

39

Code Window

Method Name box

Class Name box

Page tab

40

Create an Outline for an Event Procedure; i.e. header and End Sub

1. Double-click on a control

or

2. Use the Class Name and Method

Name boxes.

(We primarily use the first

method.)

41

Sample Form

txtFirst

txtSecond

btnRed

Double Click on txtFirst

42

Code for WalkthroughPublic Class frmDemo

Private Sub txtFirst_TextChanged(...)

Handles txtFirst.TextChanged

txtFirst.ForeColor = Color.Blue

End Sub

End Class

43

IntelliSense

Automatically pops up to give the programmer help.

44

Code Window

Click tab to return to Form Designer

45

Sample Form

txtFirst

txtSecond

btnRed

Double-click on btnRed

46

Code for WalkthroughPublic Class frmDemo Private Sub txtFirst_TextChanged(...) Handles txtFirst.TextChanged txtFirst.ForeColor = Color.Blue End Sub

Private Sub btnRed_Click(...) Handles btnRed.Click

End SubEnd Class

47

Code for WalkthroughPublic Class frmDemo Private Sub txtFirst_TextChanged(...) Handles txtFirst.TextChanged txtFirst.ForeColor = Color.Blue End Sub

Private Sub btnRed_Click(...) Handles btnRed.Click txtFirst.ForeColor = Color.Red End SubEnd Class

48

Event Procedure txtFirst.Leave

• Select txtFirst from Class Name box drop-down list.

• Select Leave from Method Name box drop-down list.

49

Code for WalkthroughPrivate Sub txtFirst_Leave(...) Handles txtFirst.Leave End Sub

Private Sub txtFirst_TextChanged(...) Handles txtFirst.TextChanged txtFirst.ForeColor = Color.BlueEnd Sub

Private Sub btnRed_Click(...) Handles btnRed.Click txtFirst.ForeColor = Color.RedEnd Sub

50

Code for WalkthroughPrivate Sub txtFirst_Leave(...) Handles txtFirst.Leave txtFirst.ForeColor = Color.BlackEnd Sub

Private Sub txtFirst_TextChanged(...) Handles txtFirst.TextChanged txtFirst.ForeColor = Color.BlueEnd Sub

Private Sub btnRed_Click(...) Handles btnRed.Click txtFirst.ForeColor = Color.RedEnd Sub

51

Header of Event ProcedurePrivate Sub btnRed_Click(…) Handles btnRed.Click

Identifies eventName, can be changed.

Private Sub Button_Press(…) Handles btnRed.Click

52

Handling Multiple Events

Private Sub Button_Click(...) Handles btnRed.Click, txtSecond.Leave txtFirst.ForeColor = Color.RedEnd Sub

Event procedure can be invoked by two events.

53

Altering Properties of the Form

• The following won't work: frmDemo.Text = "Demonstration"

• The form is referred to by the keyword Me.

Me.Text = "Demonstration"

54

3.3 Numbers

• How to handle numbers in VB• Arithmetic Operations • Variables • Incrementing the Value of a Variable • Built-In Functions:

• Math.Sqrt• Int• Math.Round

55

Numbers continued

• The Integer Data Type

• Multiple Declarations

• Parentheses

• Three Types of Errors

56

Arithmetic Operations

• Numbers are called numeric literals

• Five arithmetic operations in Visual Basic• + addition• - subtraction• * multiplication• / division• ^ exponentiation

57

Numeric Expressions

• 2 + 3

• 3 * (4 + 5)

• 2 ^ 3

58

Displaying Numbers

Let n be a number or a numeric expression.

The statement

lstBox.Items.Add(n)

displays the value of n in the list box.

Numbers Example

• List Box Example

60

Example 1: Form

61

Example 1: Code and OutputPrivate Sub btnCompute_Click (...) Handles btnCompute.Click lstResults.Items.Add(5) lstResults.Items.Add(2 * 3) lstResults.Items.Add((2 ^ 3) – 1)End Sub

Output 5in list 6box 7

62

Example 1: Code using WithPrivate Sub btnCompute_Click (...)

Handles btnCompute.Click

With lstResults.Items

.Add(5)

.Add(2 * 3)

.Add((2 ^ 3) – 1)

End With

End Sub

63

Numeric Variable

A numeric variable is a name to which a number can be assigned.

Examples:

speeddistance

interestRatebalance

64

Variables

• Declaration:Dim speed As Double

Variable name Data type

• Assignment:speed = 50

65

Initialization

• Numeric variables are automatically initialized to 0:

Dim varName As Double

• To specify a nonzero initial value

Dim varName As Double = 50

66

Numeric Expressions

Numeric variables can be used in numeric

expressions.

Dim balance As Double = 1000

lstBox.Items.Add(1.05 * balance)

Output: 1050

67

Assignment Statement

Dim numVar1 As Double = 5

Dim numVar2 As Double = 4

numVar1 = 3 * numVar2

lstBox.Items.Add(numVar1)

Output: 12

68

Incrementing

• To add 1 to the numeric variable varvar = var + 1

• Or as a shortcutvar += 1

• Or as a generalizationvar += numeric expression

69

Built-in Functions

• Functions return a value

Math.Sqrt(9) returns 3

Int(9.7) returns 9

Math.Round(2.7) is 3

70

Integer Data Type• Variables of type Double can be assigned

both whole numbers and numbers with decimals.

• The statement Dim varName As Integer declares a numeric variable that can only be assigned whole number values

between about -2 billion and 2 billion.

71

Multiple Declarations

Dim a, b As Double

Two other types of multiple-declaration statements are

Dim a As Double, b As Integer

Dim c As Double = 2, b As

Integer = 5

72

Parentheses

• Parentheses should be used liberally in numeric expressions.

• In the absence of parentheses, the operations are carried out in the following order: ^, * and /, + and -.

• Follows standard order of operations

73

Three Types of Errors

• Syntax error

• Run-time error

• Logic error

74

Some Types of Syntax Errors

• Misspellings

lstBox.Itms.Add(3)• Omissions

lstBox.Items.Add(2 + )• Incorrect punctuation

Dim m; n As Integer

75

A Type of Run-time Error

• Overflow error

Dim numVar As Integer = 1000000

numVar = numVar * numVar

76

A Logical Error

Dim average As Double

Dim m As Double = 5

Dim n As Double = 10

average = m + n / 2

Value of average will be 10. Should be 7.5.

77

3.4 Strings• Variables and Strings• Using Text Boxes for Input and Output• Concatenation

• String Properties and Methods:

•Length •ToUpper

•Trim •ToLower

•IndexOf •Substring

78

Strings continued

• The Empty String

• Initial Value of a String

• Option Strict

• Internal Documentation

• Line-Continuation Character

79

String Literal

A string literal is a sequence of

characters surrounded by quotation marks.

Examples:"hello"

"123-45-6789"

"#ab cde?"

80

String Variable

A string variable is a name to which a

string value can be assigned.

Examples:

country

ssn

word

firstName

81

String Variable

• Declaration:Dim firstName As String

Variable nameData type

• Assignment:firstName = "Fred"

82

String Variable

You can declare a string variable and

assign it a value at the same time.

Dim firstName As String = "Fred"

83

Add Method

Let str be a string literal or variable. Then,

lstBox.Items.Add(str)

displays the value of str in the list box.

84

String Variable

You can assign the value of one string

variable to another.

Dim strVar1 As String = "Hello"

Dim strVar2 As String = "Goodbye"

strVar2 = strVar1

lstOutput.Items.Add(strVar2)

Output: Hello

85

Variables and StringsPrivate Sub btnDisplay_Click(...) Handles btnDisplay.Click Dim today As String today = "Monday" lstOutput.Items.Add("hello") lstOutput.Items.Add(today)End Sub

Output: hello Monday

86

Using Text Boxes for Input and Output

• The contents of a text box is always a string

• Input example

strVar = txtBox.Text

• Output example

txtBox.Text = strVar

87

Data Conversion

• Because the contents of a text box is always a string, sometimes you must convert the input or output.

dblVar = CDbl(txtBox.Text)

txtBox.Text = CStr(numVar)Converts a String to a Double

Converts a number to a string

88

Concatenation

Combining two strings to make a new string

quote1 = "We'll always "quote2 = "have Paris."quote = quote1 & quote2txtOutput.Text = quote & " - Humphrey Bogart"

DisplaysWe'll always have Paris. - Humphrey Bogart

89

Appending

• To append str to the string variable varvar = var & str

• Or as a shortcutvar &= str

90

Appending ExampleDim var As String = "Good"

var &= "bye"

txtBox.Text = var

OUTPUT: Goodbye

91

String Properties and Methods "Visual".Length is 6.

"Visual".ToUpper is VISUAL.

"123 Hike".Length is 8.

"123 Hike".ToLower is 123 hike.

"a" & " bcd ".Trim & "efg" is abcdefg.

Note the spaces before and after bcd

92

Positions in a String Positions of characters in a string are numbered

0, 1, 2, ….

Consider the string “Visual Basic”.

Position 0: V

Position 1: i

Position 7: B

Substring “al” begins at position 4

93

Substring Method Let str be a string.

str.Substring(m, n) is the substring of length

n, beginning at position m in str.

“Visual Basic”.Substring(2, 3) is “sua”

“Visual Basic”.Substring(0, 1) is “V”

94

IndexOf Method Let str1 and str2 be strings.

str1.IndexOf(str2)

is the position of the first occurrence of str2 in str1.

(Note: Has value -1 if str2 is not a substring of str1.)

"Visual Basic".IndexOf("is") is 1.

"Visual Basic".IndexOf("si") is 9.

"Visual Basic".IndexOf("ab") is -1.

95

The Empty String • The string "", which contains no characters, is

called the empty string or the zero-length string.• The statement lstBox.Items.Add("") skips a

line in the list box. • The contents of a text box can be cleared with

either the statement txtBox.Clear()• or the statement txtBox.Text = ""

96

Initial Value of a String

• By default the initial value is Nothing

• Strings can be given a different initial value as follows:

Dim today As String = "Monday"

97

Option Strict

• Visual Basic allows numeric variables to be assigned strings and vice versa, a poor programming practice.

• To turn this feature off, put the following statement at the very top of the code window

Option Strict On

98

Option Strict On for All Programs

• Select Options from the Tools menu

• In left pane, expand Projects and Solution

• Select VB Defaults

• Set Option Strict to On

99

With Option Strict OnDim dblVar As Double, intVar As Integer

Dim strVar As String

Not Valid: Replace with:intVar = dblVar intVar = CInt(dblVar)

dblVar = strVar dblVar = CDbl(strVar)

strVar = intVar strVar = CStr(intVar)

100

CommentsPrivate Sub btnCompute_Click (...)

Handles btnCompute.Click

'Calculate the balance in an account

Dim rate As Double 'Annual rate of interest

Dim curBalance As Double 'Current balance

101

Internal Documentation

1. Other people can easily understand the program.

2. You can understand the program when you read it later.

3. Long programs are easier to read because the purposes of individual pieces can be determined at a glance.

102

Automatic Colorization

Comments – green

String literals – maroon

Keywords – blue

Note: Keywords are words such as Sub,

Handles, Private, With, and End that have

special meaning in Visual Basic. They

cannot be used as variable names.

103

Line-Continuation Character• A long line of code can be continued on another

line by using an underscore (_) preceded by a space

msg = "I'm going to make " & _

"him an offer he can't refuse.“

This is for if your line of code is to long for one line.

104

3.5 Input and Output

• Formatting Output with Format Functions

• Formatting Output with Zones

• Reading Data from Files

• Getting Input from an Input Dialog Box

• Using a Message Dialog Box for Output

• Using a Masked Text Box for Input

105

Formatting Output with Format Functions

Function String Value

FormatNumber(12345.628, 1) 12,345.6

FormatCurrency(12345.628, 2) $12,345.63

FormatPercent(0.183, 0) 18%

106

Formatting Output with Zones

• Use a fixed-width font such as Courier New

• Divide the characters into zones with a format string.

Dim fmtStr As String = "{0, 15}{1, 10}{2, 8}"

lstOutput.Items.Add(String.Format(fmtStr, _

data0, data1, data2))

107

Formatting Output with ZonesDim fmtStr As String = "{0, -15}{1, 10}{2, 8}"

lstOutput.Items.Add(String.Format(fmtStr, _

data0, data1, data2))

Here, 15 was preceded by a minus sign. This

produces left justification in 0th zone. There will

be right justification in the other two zones.

108

Zone Formatting Symbols

Symbols: N, C, and P Effect on zone

:Nr FormatNumber(data, r)

:Cr FormatCurrency(data, r)

:Pr FormatPercent(data, r)

Dim fmtStr As String = "{0,15:N1}{1,10:C2}{2,8:P0}"

109

Reading Data from Files

• Data can be stored in files and accessed with a StreamReader object.

• We assume that the files are text files (that is, have extension .TXT) and have one piece of data per line.

110

Sample File: PAYROLL.TXT

Mike Jones

7.35

35

John Smith

6.75

33

Name

Hourly wage

Number of hours worked

111

Steps to Use StreamReaderExecute a statement of the form

Dim readerVar As IO.StreamReader = _ IO.File.OpenText(filespec)

or the pair of statements

Dim readerVar As IO.StreamReader readerVar = IO.File.OpenText(filespec)

112

Steps to Use StreamReaderRead items of data in order, one at a time,from the file with the ReadLine method.

strVar = readerVar.ReadLine

After the desired items have been read fromthe file, terminate the communications link

readerVar.Close()

113

Example using StreamReaderDim name As StringDim wage, hours As DoubleDim sr As IO.StreamReader = _ IO.File.OpenText("PAYROLL.TXT")name = sr.ReadLinewage = CDbl(sr.ReadLine)hours = CDbl(sr.ReadLine)lstBox.Items.Add(name & ": " & wage * hours)

OUTPUT: Mike Jones: 257.25

114

Comment on Example

Consider

lstBox.Items.Add(name & ": " & wage * hours)

The ampersand automatically converted

wage * hours into a string before concatenating.

We didn’t have to convert wage * hours with CStr.

115

Getting Input from an Input Dialog Box

stringVar = InputBox(prompt, title)

fileName = InputBox("Enter the name " _

& "of the file containing the " & _

"information.", "Name of File")

Title

Prompt

116

Using a Message Dialog Box for OutputMsgBox(prompt, 0, title)

MsgBox("Nice try, but no cigar.", 0, _

"Consolation")

Title

Prompt

117

Masked Text Box

Similar to an ordinary text box, but has a Mask property that restricts what can be typed into the masked text box.

118

Input Mask Dialog Box

119

Mask

A Mask setting is a sequence of characters, with 0, L, and & having special meanings.

0 Placeholder for a digit.

L Placeholder for a letter.

& Placeholder for a character or space.

120

Sample Masks

State abbreviation: LL

Phone number: 000-0000

Social Security Number: 000-00-0000

License plate: &&&&&&

Recommended