Sie sind auf Seite 1von 33

Public Class Form1

02

03 Dim total1 As Integer


04 Dim total2 As Integer

05

Private Sub btn3_Click(ByVal sender As System.Object, ByVal e As


06
System.EventArgs) Handles btnthree.Click

07

08 txtDisplay.Text = txtDisplay.Text & btnthree.Text

09

10 End Sub

11

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As


12
System.EventArgs) Handles MyBase.Load

13

14 End Sub

15

Private Sub btn7_Click(ByVal sender As System.Object, ByVal e As


16
System.EventArgs) Handles btnseven.Click

17
18 txtDisplay.Text = txtDisplay.Text & btnseven.Text

19

20 End Sub

21

Private Sub btnzero_Click(ByVal sender As System.Object, ByVal e As


22
System.EventArgs) Handles btnzero.Click

23

24 txtDisplay.Text = txtDisplay.Text & btnzero.Text

25

26

27 End Sub

28

Private Sub btnone_Click(ByVal sender As System.Object, ByVal e As


29
System.EventArgs) Handles btnone.Click

30

31 txtDisplay.Text = txtDisplay.Text & btnone.Text

32

33 End Sub

34
Private Sub btntwo_Click(ByVal sender As System.Object, ByVal e As
35
System.EventArgs) Handles btntwo.Click

36

37 txtDisplay.Text = txtDisplay.Text & btntwo.Text

38

39 End Sub

40

Private Sub btnfour_Click(ByVal sender As System.Object, ByVal e As


41
System.EventArgs) Handles btnfour.Click

42

43 txtDisplay.Text = txtDisplay.Text & btnfour.Text

44

45 End Sub

46

Private Sub btnfive_Click(ByVal sender As System.Object, ByVal e As


47
System.EventArgs) Handles btnfive.Click

48

49 txtDisplay.Text = txtDisplay.Text & btnfive.Text

50

51 End Sub
52

Private Sub btnsix_Click(ByVal sender As System.Object, ByVal e As


53
System.EventArgs) Handles btnsix.Click

54

55 txtDisplay.Text = txtDisplay.Text & btnsix.Text

56

57 End Sub

58

Private Sub btneight_Click(ByVal sender As System.Object, ByVal e As


59
System.EventArgs) Handles btneight.Click

60 txtDisplay.Text = txtDisplay.Text & btneight.Text

61

62 End Sub

63

Private Sub btnnine_Click(ByVal sender As System.Object, ByVal e As


64
System.EventArgs) Handles btnnine.Click

65 txtDisplay.Text = txtDisplay.Text & btnnine.Text

66

67 End Sub
68

Private Sub cmdPlus_Click(ByVal sender As System.Object, ByVal e As


69
System.EventArgs) Handles cmdPlus.Click

70

71 total1 = total1 + Val(txtDisplay.Text)

72

73 txtDisplay.Clear()

74

75 End Sub

76

Private Sub cmdEquals_Click(ByVal sender As System.Object, ByVal e As


77
System.EventArgs) Handles cmdEquals.Click

78

79 total2 = total1 + Val(txtDisplay.Text)

80 txtDisplay.Text = total2

End Sub
End Class

I think I figured it out. Here is what I did.

view source

print?
1 total1 = btnzero.Text

I can't believe it took me a whole day to figure that out.

This tutorial will teach you:-

-Simple Arrays

-Manipulating numbers

-Implementing summing

Let's begin. Firstly we need to create the interface. So you'll need to crank
up ole VB. Put a text box up the top, clear it and give it a decent name like
txtDisplay, now we need to create the numbers, these will be command buttons
and must be an array, the easiest way to do this is to just create one button,
copy and paste it, and when the system asks do you want to create a control
array, you click yes! But what is and array? Well simply put it is a collection
of related variable that share the same type.

Do this for all the numbers 0


through 9, just like on Windows own calculator. Now you need to do the same
for the methods of calculation, the - + * etc. Now you should have something
that resembles a calculator. Of course these aren't the only buttons you'll
need dont forget the equals sign and of course some form of clear, I use C just
like Windows' own calculator. And now onto some coding.

We are going to need three variables, one for the first number of type double
(to hold large numbers.) one for the second number, and of course one for the
sign, or type of calculation we are doing. This is how I have declared them.

Dim first As Double


Dim second As Double
Dim sign As String

Not to bad so far, let's get those nasty arrays out of the way.

Private Sub Command1_Click(Index As Integer)


If txtDisplay.Text = "" Then
txtDisplay.Text
= Command1(Index).Caption
Else
txtDisplay.Text
= txtDisplay.Text & Command1(Index).Caption
End If
End Sub

This is the array, what this does is makes the content of the display screen
equal to the caption that has been clicked. In other words if you click the
button with 1 on it the number one will go to the display text box. The same
applies for the following array sub.

Private Sub Command2_Click(Index As Integer)


first = txtDisplay.Text
txtDisplay.Text = ""
sign = Command2(Index).Caption
End Sub

Now what this does is assign the value of the display to the first variable,
this makes it nice and easy to manipulate two numbers, it's my tip of the day,
next it clears the content of the display box and then assigns the sign to the
sign variable. And now for a minimal effort at keeping the user from crashing
it.

Private Sub Form_Load()


txtDisplay.Enabled = False
txtDisplay.MaxLength = 10
End Sub

On form load set max length of the text box to 10 and dont let anything get
stuck in the text box by any other method then hitting the command buttons.
Now lets see our hard work pay off by adding the calculation sub.

Private Sub cmdEq_Click()


second = txtDisplay.Text
If sign = "-" Then
txtDisplay.Text
= first - second
ElseIf sign = "+" Then
txtDisplay.Text
= first + second
ElseIf sign = "*" Then
txtDisplay.Text
= first * second
ElseIf sign = "/" Then
txtDisplay.Text
= first / second
End If
End Sub
Firstly the sub assigns whats in the display to the variable named second.
It then works out what calculation should be done by finding the current value
for the sign variable, so if the variable is / then it will devide the first
number by the second. And that in essence is the calculator, not to bad I thought,
and easy enough for you to build on and create a much more complex one. There
are a few mor subs we should explore but don't deserve any special attention.

Private Sub cmdDot_Click()


If InStr(txtDisplay.Text, ".") = 0 Then
txtDisplay.Text = txtDisplay.Text & "."
End If
End Sub

This tests if there is a . in the box before adding one.

Private Sub cmdClear_Click()


txtDisplay.Text = "0"
End Sub

Resets the display box.

This is all there is to writing a simple calculator program in VB it's barely


a page worth of actual code.

What you should have learned :-


-Array use
-Simple error cactching
-Using numbers in Visual Basic with mathematical calculations

Public Class Form1


Dim s = 0, a As Integer
Dim op As String
Dim b As String
Dim c As String

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click
a=1
TextBox1.Text = "1"
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button3.Click
a=2
TextBox1.Text = "2"
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button2.Click
a=3
TextBox1.Text = "3"
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button5.Click
a=4
TextBox1.Text = "4"
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button4.Click
a=5
TextBox1.Text = "5"
End Sub

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button9.Click
a=6
TextBox1.Text = "6"
End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button7.Click
a=7
TextBox1.Text = "7"
End Sub

Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button11.Click
a=8
TextBox1.Text = "8"
End Sub

Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button10.Click
a=9
TextBox1.Text = "9"
End Sub

Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button12.Click
a=0
TextBox1.Text = "0"
End Sub

Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button14.Click
s = Integer.Parse(TextBox1.Text)
op = "+"
TextBox1.Text = ""

End Sub

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button8.Click
s=0
a=0
TextBox1.Text = a.ToString()
End Sub

Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button13.Click
s = Integer.Parse(TextBox1.Text)
op = "-"
TextBox1.Text = ""

End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button6.Click
If op = "+" Then
s = s + Integer.Parse(TextBox1.Text)
End If
If op = "-" Then
s = s - Integer.Parse(TextBox1.Text)
End If
If b = "*" Then
s = s * Integer.Parse(TextBox1.Text)
End If
TextBox1.Text = "0"
TextBox1.Text = s.ToString()
s=0
End Sub

Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button15.Click

s = Integer.Parse(TextBox1.Text)

b = "*"
End Sub

Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button16.Click
s = Integer.Parse(TextBox1.Text)
c = "/"
TextBox1.Text = ""
End Sub
End Class

Top of Form
/w EPDw UKMTY2
New Member FAQ | Forums | Earn Search
Revenue

Quest
Practi Ask Unive Coll Co Sc
Resourc ion Jo Eng Proj
ce Expe rsitie ege urs ho Training
es Paper bs lish ects
Tests rts s s es ols
s

Gift Shop | Bookmarks | Reviews | Business

Directory | Lobby | Communities | Classifieds | Mentors | Links | New Posts | My

India | Members | Polls |

My Profile

Resources » Articles/Knowledge Sharing » Computer &


• Sign In
Technology »
• Register

• AdSens
e
Revenu How To Create a
e

Calculator in Visual
Awards &

Gifts Basic.Net
Posted Date: Resource Type:
Category: Computer
16 Sep Articles/Knowle
& Technology
2009 dge Sharing

Author: Kiran
Active Members Member Level:
Paul
Today Diamond
Kanikaram

• vimal
Rating: Points: 45 (Rs
(241)
35)
• ankit
(168)

• krishna
(104)

Last 7 Days

• R
Pramod
(3015)

• babu
(2469)

• vimal
(1230)

Online Members
ankit
I have been learning Visual Basic .Net and have been
Tony
trying to create many applications and I just wanted
Thanga perumal "Your's
to put down what I have learned and this application
Friend"
would be a lot of help for those who are interested
Shathish kumar
into programming or learning to code.
srinivas raju
The Calculator application is the most common jay

application being asked in the examinations and also Chharugh Konwar

in the technical interview for job aspirants and I have Rajeev Pathak

found this one to be very useful and the code is also More...

very simple and easy to learn and when actually

starts creating it would be fun.

I am putting down every thing in detail and in step by

step form and also I would try to put in some images

for easy understanding so that one would find its

approach very easy and quick to learn. Also please

find an attachment in pdf format of the code for

calculator but a not of caution don’t just copy paste

the code but following step by step will actually help

you to understand what is been done behind the

code.

First of all you need to have Microsoft Visual Basic 6

or more or visual basic.net installed on your system.

Open the application and it will display a start page if

you do not have any other applications created. Now

just follow the steps mentioned.

1. From the file menu select "Standard EXE" from the

new project menu (Visual basic 6). If working on

Visual Basic. Net then from the File menu select New

Project. You will see a blank form appear on the

screen.
2. Rename your project and your form by clicking on

"Project1" at the right hand side of the screen in the

Solution Explorer window or in the project listing as

per the version of the VB. Enter a new name in the

"Name" line of the Properties box, which should

appear below the project listing by default. Press

"Enter" to accept the new name. Do the same for

your form (a suggested form name is ‘Calculator’),

making sure to enter a similar name in the "Caption"

property as well, which will change the text in the top

bar of the form. Save the project in a new folder on

your computer.
3. Now you have a form displayed on the screen and

also on the left side you would see the toolbox menu

items. If you do not find it the go to the View Menu

and click Tool bar and select the standard menu item.

The tool box is displayed. Add the required buttons

and a text box to the form.

First add a text box in which the numbers are entered

and also the results of calculations is displayed when

the calculator appear. Select the Text Box button

from the toolbar at the left side of the screen, and

then drag with your mouse to the location you desire

for the Text Box.

Once you've placed the Text Box you can change the

size and location by dragging it to another location of

the form or by dragging the handles (the small

squares) along the border of the TextBox. Be sure to

change the following lines in the Properties window,

with the TextBox selected: "(Name)" = tbResult,

"Alignment" = 1- Right Justify, "Data Format" = (click

on the "..." button to select) Number, "Locked" =


True, and "Text" = 0.

4. Select the Button icon on the toolbar and create

the first button just like the way you created the Text

Box. For quick reference use the Windows calculator

in Standard view. You can view this by going to

Programs > Accessories > Calculator as a base for

your calculator layout.

We are not adding the "MC’, ‘MR’, ‘MS’ and ‘M+’

buttons. For each button change the following

properties using the "+" button as an example.

Change the properties of Name as ‘btnPlus’, Caption

or Text as ‘+’. Do the same for the rest of the

calculator buttons and save your work. Your form


should now resemble like this.

5. Now let’s start adding some code to make the

calculator work. Please note that your buttons and

textbox should be named the same as the code listed

here or else you will need to change the names to

match your buttons and textbox to match this code.

First we need to create a few variables for processing

calculator input:

Dim aLeft As String, aRight As String, aOperator As

String

Dim iLeft As Double, iRight As Double, iResult As

Double

Dim bLeft As Boolean


Each calculation consists of four parts: a number to

the left of the operator (aLeft, iLeft), an operator

(aOperator), a number to the right of the operator

(aRight, iRight), and a result (iResult). In order to

track whether the user is entering the left or right

number, we need to create a boolean variable, bLeft.

If bLeft is true, the left side of the calculation is being

entered; if bLeft is false, the right side is being

entered.

6. Initialize the bLeft variable. We do that by creating

a Form_Load subroutine, which you can either type

as listed here or automatically create by double-

clicking on any part of the form not covered by a

button or textbox. Inside the function, we need to set

bLeft to True, because the first number entered will

be the left part:

Private Sub Form_Load()

bLeft = True

End Sub

7. Now we need to create a subroutine that will

handle the clicking of any of the number buttons. This

subroutine we be used for each of the number button

and should be after the End Sub of the Form Load

because we use identical code for each button, and

using a subroutine means not having to repeat the

same code ten times. Enter the following below the

Form_Load subroutine's End Sub line:

Private Sub AddNumber(sNumber As String)

If bLeft Then
aLeft = aLeft + aNumber

tbResult.Text = aLeft

Else

aRight = aRight + aNumber

tbResult.Text = aRight

End If

End Sub

From the above we see that this function takes a

string parameter, aNumber, which will contain the

number the user has clicked on. If bLeft is true, this

number is appended to the string that represents the

number being entered, aLeft, and the textbox,

tbResult, is updated to display the new number. If

bLeft is false, the same operation is performed using

aRight instead.

Finally, create a Click event function for each number

that calls our AddNumber subroutine. You can do this

easily by double-clicking each number button, which

will create the subroutine structure for you. Then add

the call to AddNumber, replacing the number in

quotes with the number associated with the button.

For the zero button, your code will look like this:

Private Sub btn0_Click()

AddNumber ("0")

End Sub

Likewise, for the one button, your code will look

like this

Private Sub btn1_Click()

AddNumber ("1")
End Sub

Like wise create the subroutine for all other

numbers.

8. To handle the operators plus, minus, times, and

divide. We will do this step, creating a subroutine that

is called in the Click events for the operator buttons.

The subroutine will look like the following:

Private Sub AddOperator(sNewOperator As String)

If bLeft Then

aOperator = sNewOperator

bLeft = False

Else
btnEquals_Click (this should be used only in Visual

Basic 6. If the same is there in the VB.net it will

throw error. Make a note of it)

aOperator = sNewOperator

aRight = ""

bLeft = False

End If

End Sub

If bLeft is true, meaning the user has just entered the

left part of the calculation, this subroutine sets the

aOperator variable we created in step 5 to equal the

operator entered, which is passed to AddOperator as

the string sNewOperator. The second step is to set

bLeft to False, because the entry of an operator

means the user is done entering the left side of the

equation.

In order to handle entries that string multiple

operators together, such as 9 * 3 * 2 * 6, we need to

also check whether bLeft is false, meaning the user

has entered an operator where we were expecting an

equals. First we call the Click event for the equals

button (described in the next step), which does the

calculation and sets tbResult to the result of what has

already been entered. Then we clear aRight so the

user can enter the next number, and set bLeft to

False so the program knows we are entering the right

hand side of the calculation next.

Add an AddOperator call to the Click event of each

operator button, using the same method as we used

in step 7 to create the Click events for the number

buttons. Your code for the plus button will look like
this:

Private Sub btnPlus_Click()

AddOperator ("+")

End Sub

Likewise, the code for the minus button will

look like this:

Private Sub btnMinus_Click()

AddOperator ("-")

End Sub

9. Create the Click event for the equals button, which

is the most complex code in this program. Create the

subroutine structure like you did for the other

buttons, by double-clicking the equals button on your

form.

Here in this subroutine we will use the case syntax

because based on the button click the code should

run. So the case statement will select the button

clicked like plus, minus, divide, multiply etc and will

perform the condition mentioned for that particular

case. So the advantage of the case syntax is that it

will directly go to the required condition. Your

subroutine will look like this when you've entered the

code:

Private Sub btnEquals_Click()

If aLeft <> "" And aRight = "" And aOperator <> ""

Then

aRight = aLeft

End If
If sLeft <> "" And aRight <> "" And aOperator <> ""

Then

iLeft = aLeft

iRight = aRight

Select Case sOperator

Case "+"

iResult = iLeft + iRight

Case "-"

iResult = iLeft - iRight

Case "/"

iResult = iLeft / iRight

Case "*"

iResult = iLeft * iRight

End Select

tbResult.Text = iResult

aLeft = iResult

aRight = ""

bLeft = True

End If

End Sub

The first three lines of code check to see if both sides

of the calculation have been entered along with an

operator. If only the left side and an operator are

entered, the value of the left side is copied to the

right, so we can mimic the standard calculator

behavior for handling an entry like 9 * =, which

multiplies 9 by itself to get a result of 81.

The rest of the code will run only if left, right, and
operator are entered, and starts out by copying the

strings of numbers into our iLeft and iRight Double-

typed variables, which can do the actual calculations.

The Select Case statement allows us to run different

code depending on which operator was entered, and

performs the actual calculation, placing the result in

iResult. Finally, we update the textbox with the

result, copy the result into aLeft, reset aRight, and

set bLeft = True.

These last lines allow us to take the result of the

calculation and use it to perform another calculation.

10. Now we will look at the last three operation

buttons: sqrt, %, and 1/x. For the Click event of the

square root button, your code will look like this:

Private Sub btnSqrt_Click()

If aLeft <> "" Then

iLeft = aLeft

Else

iLeft = 0

End If

If aRight <> "" Then

iRight = aRight

Else

iRight = 0

End If

If bLeft Then

iLeft = Math.Sqr(iLeft)

tbResult.Text = iLeft

Else
iRight = Math.Sqr(iLeft)

tbResult.Text = iRight

End If

If iLeft <> 0 Then

aLeft = iLeft

Else

aLeft = ""

End If

If iRight <> 0 Then

aRight = iRight

Else

aRight = ""

End If

End Sub

A point to be noted is that when the square root

function is run then in the iLeft = Math.Sqr(iLeft),

iRight = Math.Sqr(iLeft) lines sqr to be changed to

sqrt if using VB.net.

The first 11 lines of code make sure that if we don't

have a value entered for either side of the equation,

we substitute zero instead of trying to copy an empty

string into iLeft or iRight, which will generate an

error. The middle lines perform the square root

function on the current part of the calculation, either

left or right. Finally, we reverse the checks we did in

the beginning so that a zero is copied as an empty

string back into aLeft and aRight.

For the percent button, the code is similar, with one

exception: the percent operation can only be


performed if both left and right sides are entered.

Private Sub btnPercent_Click()

If Not bLeft Then

If aRight <> "" Then

iRight = aRight

Else

iRight = 0

End If

iRight = iRight * (iLeft / 100)

tbResult.Text = iRight

If iRight <> 0 Then

aRight = iRight

Else

aRight = ""

End If

End If

End Sub

Lastly, the 1/x, or fraction, Click event, which is very

similar to the code above:

Private Sub btnFraction_Click()

If aLeft <> "" Then

iLeft = aLeft

Else

iLeft = 0

End If

If aRight <> "" Then

iRight = aRight

Else
iRight = 0

End If

If bLeft Then

iLeft = 1 / iLeft

tbResult.Text = iLeft

Else

iRight = 1 / iRight

tbResult.Text = iRight

End If

If iLeft <> 0 Then

aLeft = iLeft

Else

aLeft = ""

End If

If iRight <> 0 Then

aRight = iRight

Else

aRight = ""

End If

End Sub

11. Lets add some code to handle the C and CE

buttons. C clears all input to the calculator,

whereas CE only clears the number currently

being entered.

Private Sub btnC_Click()

aLeft = ""

aRight = ""

aOperator = ""

tbResult.Text = "0"
bLeft = True

End Sub

Private Sub btnCE_Click()

If bLeft Then

aLeft = ""

Else

aRight = ""

End If

tbResult.Text = "0"

End Sub

12. Here we are now we are ready with the

calculator and can run your calculator program

and do any calculation you wish. Now by putting

in extra effort and some thinking this calculator

can be easily expanded to handle more

operations, more complex calculations or even

to be a scientific calculator.
A Tester's Blog

Attachments
 calculator Code (86486-16434-VB calculator

code.pdf)

Responses to the resource: "How To

Create a Calculator in Visual Basic.Net"

No responses found. Be the first to respond and

make money from revenue sharing program.


Subscribe to Feedbacks Un Subscribe

Feedbacks

ha
Se
t
ar
Popular ar
ch
e
Tags Ta
ta
gs
gs

How To Create a Calculator in Visual

Basic.Net . Calculator code in

VB . Visual Basic Code .

Post Feedback

This is a strictly moderated forum. Only approved

messages will appear in the site. Please use 'Spell


Check' in Google toolbar before you submit.

You must Sign In to post a response.

Next
More Resources
Resource:

Convert any
• Convert any movie
movie format format to 3GP
to 3GP
• Useful tips on
Previous website creation to

Resource: earn money online

Checking
• How to convert MS
Usability
Word file to PDF file
Features in a

Web • Design Pattern


Interview Questions
Application
- Part 3
while Testing

• Hardware
Return to

Resources • TuneUp Utilities


2009 How to make
Post New
your pc run faster
Resource With high
performance
Category:

Computer &

Technology

Post resources and

earn money!

About Us Contact Us Revenue Sharing sites Advertise Privacy Policy Terms Of Use

ISC Technologies, Kochi - India


2006 - 2010 All Rights Reserved.

Bottom of Form