Chapter 3: Understanging Buttons, and Textboxes
Chapter 3: Understanging Buttons, and Textboxes
Chapter 3: Understanging Buttons, and Textboxes
68
Chapter 3: Understanging Buttons, and Textboxes
69
Chapter 3: Understanging Buttons, and Textboxes
Set its type to windows forms application and set its name to calculator. Press OK
70
Chapter 3: Understanging Buttons, and Textboxes
71
Chapter 3: Understanging Buttons, and Textboxes
Change the form text property to My Calculator, you don’t want your application to
have the title Form1 when it starts.
72
Chapter 3: Understanging Buttons, and Textboxes
From the ToolBox, drop a TextBox control onto the form, and resize it.
73
Chapter 3: Understanging Buttons, and Textboxes
After setting the text box location, we will change its Name property. This property allows
us to modify and access this control at runtime and change its behavior, or perform
something for us. So, set it to LCD since it will be used to display the numbers. You can
leave the name TextBox1 without change, or select any other name. Keep in mind that the
name you choose will be used instead of LCD in the code. Note that the Name property
does not have any visible effect, you can’t see the result of its change, because it will be
used internally only to reference this control.
74
Chapter 3: Understanging Buttons, and Textboxes
Now, we start working with the display, usually when the calculator starts it should display
the number 0. In out case it does not. So we modify the Text Property and write 0 in that.
Make sure you don’t add any spaces before or after the 0.
75
Chapter 3: Understanging Buttons, and Textboxes
The second thing to note is that the number is aligned to the left, while calculators align
the number to the right. Search for the TextAlign property and change it to Right.
76
Chapter 3: Understanging Buttons, and Textboxes
By the way, we forgot to save the project, so, press save all. It is good practice to save your
work every few minutes.
Now if you run the application, you will notice that you can access the text box via the
cursor, and write some text, or remove the text. You don’t want that to happen. Simply
change the ReadOnly property to True. Notice that once the ReadOnly property is ture,
the text box will look like this:
77
Chapter 3: Understanging Buttons, and Textboxes
The solution to this problem is simple. Go to the BackColor property of the text box and
select the white color for it.
The window should look fine, next we will add the buttons to the form.
78
Chapter 3: Understanging Buttons, and Textboxes
From the tool box window, drag and drop a Button onto the form.
79
Chapter 3: Understanging Buttons, and Textboxes
Change its Name property to n1. This will help us identify which number was pressed.
80
Chapter 3: Understanging Buttons, and Textboxes
Change the backcolor property for the button, usually you can select from Custom
a different color other than the ones the system provide.
81
Chapter 3: Understanging Buttons, and Textboxes
After the color changes, we will modify the text that the button is displaying, so
change the text property into 1.
82
Chapter 3: Understanging Buttons, and Textboxes
Now the number is very small, we can increase its size a little bit, so go to the
font property, and set its font to courier new, and size to 20 for example.
83
Chapter 3: Understanging Buttons, and Textboxes
Now we can repeat the same operation to all the other nine buttons, or we can just copy
this button and get the same result quickly. Just hold the ctrl key and drag the control.
84
Chapter 3: Understanging Buttons, and Textboxes
Now we change the names of the buttons (or you can leave them as they are and skip
this part). The names will continue to be n2,n3,n4,n5,n6,n7,n8,n9, and n0.
N2
LCD
N3
N1
N6
N4
N5
N7 N9
N8
N0
Next we change the text property for each one to display the numbers from 1 to 9, and 0
finally.
Now if you run the application, you won’t be able to do anything, i.e. the form appears,
and pressing the buttons will have no effect. This is because we haven’t tell the
application what to do when you click any of the buttons. So, double click the button
N1 to go to its event
85
Chapter 3: Understanging Buttons, and Textboxes
What you see here is a procedure or subroutine. This is a small block of code that you write
to tell the application what to do when a button is clicked. The n1_Click is the name of
this procedure. It tells you that it get executed when the button whose name n1 is clicked
by the user. Write down the code to have it like this:
Note:I made the text small so that it fits one line. In VB.NET the new line is a sentence
terminator.
The code means the following:
Private Sub part defines the subroutine. It is part of the language (or keywords as they
call it).
86
Chapter 3: Understanging Buttons, and Textboxes
n1_Click is the name of that subroutine. You can use the name to call the subroutine
whenever you need. The name can be anything you choose. More on that in later tutorials.
(ByVal sender As System.Object, ByVal e As System.EventArgs) : these are
called the arguments. The allow the subroutine to be flexible by checking some inputs, to
process things differently. More on that later.
Handles n1.Click : this one means that this subroutine will be automatically called
whenever the button n1 is clicked by the end user.
LCD.Text = LCD.Text & "1" : this is the processing we are performing when we press
the button 1. Its meaning is add to the current text on the display (which we call LCD) the
number 1. Note that we used the Text property which we modified previously using the
properties window.
End Sub : signals the end of subroutine.
You should repeat the code for buttons n2,n3,n4,n5,n6,n7,n8,n9, and n0 to add the numbers
2,3,4,5,6,7,8,9,0 respectively. So the code should look like this:
87
Chapter 3: Understanging Buttons, and Textboxes
88
Chapter 3: Understanging Buttons, and Textboxes
Next we create the clear button, copy the 0 button, and place the copy next to the 0.
Change its name to bc, and text property to C.
89
Chapter 3: Understanging Buttons, and Textboxes
Now if you double click the C button, you will go to the code handler of 0. Check the code
and you will see that this subroutine will handle the events of n0.click and bc.click.
Actually this will make both buttons behave the same way, so you should create a separate
handler for bc. The reason why VB.NET linked them together into the same subroutine, is
that you copied n0, so VB assumes that the copies should behave the same way as the
original. What you should do now is remove the , bc.Click from the procedure and then
create the handler for clear button.
90
Chapter 3: Understanging Buttons, and Textboxes
Just go back to design window, then double click the C button and add the text shown
above. Try to run the program, clicking some numbers and then pressing the C button.
91
Chapter 3: Understanging Buttons, and Textboxes
Now assuming you know now how to copy a control and change its text property, now,
add the operations as shown above. Next name them as follows:
+ name is bad -
name is bsub *
name is bmult /
name is bdiv =
name is bequal
And then remove their handlers from the subroutines because we want to write new
event handlers for them.
92
Chapter 3: Understanging Buttons, and Textboxes
Double click the + button to go to the code window. Now add the code :
FirstNumber is a variable that helps the application remember integer numbers. The reason
we use it is to keep track of the last number we entered into the calculator. When we press
any operation the display is going to be cleared and so the number is lost, so this variable
will store the number before it is removed from the display. Operation is a variable used to
remember the last operation that is being pressed. It will store +,-,*,/.
Next add the following code event handles into the subroutines of +,-,*,/ respectively:
FirstNumber = LCD.Text
LCD.Text = "0"
Operation = "+"
93
Chapter 3: Understanging Buttons, and Textboxes
FirstNumber = LCD.Text
LCD.Text = "0"
Operation = "-"
FirstNumber = LCD.Text
LCD.Text = "0"
Operation = "*"
FirstNumber = LCD.Text
LCD.Text = "0"
Operation = "/"
94
Chapter 3: Understanging Buttons, and Textboxes
The last thing to do is the = handler where the operation should be executed
SecondNumber = LCD.Text
FirstNumber = Result
LCD.Text = Result
End Sub
The code first gets the value from the display, then it check the last operation, if it is
addition, then the result will be the sum of the number in memory and the number just we
get from the display. If subtraction then subtract one from the other and so on. Finally store
the result into memory for further operations on it (you can neglect that, it is not that you
have to do it), and then display the result by updating the text property of LCD.
Now run the application and try adding two numbers like 30 and 5:
95
Chapter 3: Understanging Buttons, and Textboxes
Next you will notice that when you enter any number you always gets a zero before that
number. This is meaningless and should not happen in a calculator. So we will update our
code to get rid of the zero in case we clicked on any number (0,1,2,3,4,5,6,7,8,9) and there
is a 0 in the display. So update the code to be:
96
Chapter 3: Understanging Buttons, and Textboxes
LCD.Text = "4"
Else
LCD.Text = LCD.Text & "4"
End If
End Sub
97
Chapter 3: Understanging Buttons, and Textboxes
This is not the best way to write the code, but it is just to practice working in the
environment. Later on we will get into the language itself and understand how it works
after understanding most of the controls.
Now run the application and see that the zero disappears when you click any number. After
checking that the calculator is working fine, we will make some changes into it. First we
change the size of the font in the LCD to be a little bit bigger so select the LCD control
(the textbox whose name is LCD), and change its Font property
98
Chapter 3: Understanging Buttons, and Textboxes
Next we will modify the form behavior so that it does not change size.
99
Chapter 3: Understanging Buttons, and Textboxes
First try to position the controls again to look more professional, you can move all the
controls together by selecting them all. The selection works by drawing a box that embed
them all. Next click on any empty space on the form so that you can change its properties
100
Chapter 3: Understanging Buttons, and Textboxes
101
Chapter 3: Understanging Buttons, and Textboxes
Next change the FormBorderStyle property from Sizable to FixedSingle, this will
prevent your calculator from being resized.
102
Chapter 3: Understanging Buttons, and Textboxes
Finally change the MaximizeBox for your form to be False. This prevents the form from
being maximized.
103
Chapter 3: Understanging Buttons, and Textboxes
Just in case it does not work, the code should be as below assuming you used the same
names:
104
Chapter 3: Understanging Buttons, and Textboxes
105
Chapter 3: Understanging Buttons, and Textboxes
End Sub
106
Chapter 3: Understanging Buttons, and Textboxes
SecondNumber = LCD.Text
107
Chapter 3: Understanging Buttons, and Textboxes
End If
FirstNumber = Result
LCD.Text = Result
End Sub
End Class
108