Click here to Skip to main content
15,867,686 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
I click a number, added it(becomes var1), click number again, press equal(2nd number becomes var2) and operates it. now when i click equal again(which is making the now output var2) it adds it to var1. what i want to do is if you click equal again the var1 will change to the first var 2. Im not really good at explaining XD but here

1 + 3 = 4
1(press an operation) making 1 the var1
then 3(press equal) making 3 the var2 and operates it
now if i press equal again, whats on the label1 will be my var2 which is 4
my var1 still 1 but my var2 is 4 so itd be like this:
press equal again 1+4=5 and not 4+3=7 making 4 the var 1 and keeping 3 the var2

What I have tried:

Public Class Form1
Dim var1 As Decimal
Dim var2 As Decimal
Dim operation As String

Private Sub Button16_Click(sender As Object, e As EventArgs) Handles Button16.Click
If Val(Label1.Text) <> 0 Then
Label1.Text &= 0
Else Label1.Text = 0
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If Label1.Text <> "0" Then
Label1.Text &= 1
Else Label1.Text = 1
End If
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If Label1.Text <> "0" Then
Label1.Text &= 2
Else Label1.Text = 2
End If
End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If Label1.Text <> "0" Then
Label1.Text &= 3
Else Label1.Text = 3
End If
End Sub

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
If Label1.Text <> "0" Then
Label1.Text &= 4
Else Label1.Text = 4
End If
End Sub

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
If Label1.Text <> "0" Then
Label1.Text &= 5
Else Label1.Text = 5
End If
End Sub

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
If Label1.Text <> "0" Then
Label1.Text &= 6
Else Label1.Text = 6
End If
End Sub

Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
If Label1.Text <> "0" Then
Label1.Text &= 7
Else Label1.Text = 7
End If
End Sub

Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
If Label1.Text <> "0" Then
Label1.Text &= 8
Else Label1.Text = 8
End If
End Sub

Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
If Label1.Text <> "0" Then
Label1.Text &= 9
Else Label1.Text = 9
End If
End Sub

Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
If IsNumeric(Label1.Text) <> 0 Then
var1 = Label1.Text
Label1.Text = ""
operation = "+"
End If
End Sub

Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
If IsNumeric(Label1.Text) <> 0 Then
var1 = Label1.Text
Label1.Text = ""
operation = "-"
End If
End Sub

Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
If IsNumeric(Label1.Text) Then
var1 = Label1.Text
Label1.Text = ""
operation = "*"
End If
End Sub

Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Button14.Click
If IsNumeric(Label1.Text) Then
var1 = Label1.Text
Label1.Text = ""
operation = "/"
End If
End Sub

Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
If IsNumeric(Label1.Text) Then
var2 = Label1.Text
Select Case operation
Case "+"
Label1.Text = var1 + var2
Case "-"
Label1.Text = var1 - var2
Case "*"
Label1.Text = var1 * var2
Case "/"
If var2 = 0 Then
Label1.Text = "Error!"
Else Label1.Text = var1 / var2
End If
End Select

End If

End Sub

Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click
Label1.Text = "0"
operation = ""
var1 = 0
var2 = 0
End Sub

Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Button17.Click
Label1.Text &= "."

End Sub
End Class
Posted
Updated 10-Feb-18 20:44pm

1 solution

You can replace all those button click handlers by one, like this:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click
    Dim index As Integer
    If Integer.TryParse(CType(sender, Button).Tag.ToString, index) Then 
    ' a number
    ' etc ...
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900