Web User Control Version CalcPad Code for VB.NET - Click the Back button in your browser to return
Public Class CalcPad
Inherits System.Web.UI.UserControl
#Region " Web Form Designer Generated Code "
Private Sub Page_Load( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
If Session("PendingOp") Is Nothing _
Then Session("PendingOp") = "Null"
If Session("PendingOpFlag") Is Nothing _
Then Session("PendingOpFlag") = False
If Session("Accum") Is Nothing _
Then Session("Accum") = 0
End Sub
Property DisplayValue() As String
Get
Return CalcPadDisplay.Text
End Get
Set(ByVal Value As String)
End Set
End Property
Private Sub op( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles opplus.Click, opminus.Click, _
opdivide.Click, opmult.Click
Dim tag As String
Dim DisplayValue As Double
Select Case sender.id
Case "opdivide"
tag = "Divide"
Case "opmult"
tag = "Multiply"
Case "opminus"
tag = "Subtract"
Case "opplus"
tag = "Add"
End Select
DisplayValue = CDec(CalcPadDisplay.Text)
If Session("Accum") = 0 Then
Session("Accum") = DisplayValue
Else
Session("Accum") = AccumCalc(Session("PendingOp"))
CalcPadDisplay.Text = CStr(Session("Accum"))
End If
Session("PendingOp") = tag
Session("PendingOpFlag") = True
End Sub
Private Sub opequals_Click( _
ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles opequals.Click
CalcPadDisplay.BackColor = Color.White
If Session("PendingOp") <> "Null" Then
Session("Accum") = AccumCalc(Session("PendingOp"))
CalcPadDisplay.Text = Session("Accum")
Session("PendingOp") = "Null"
Session("PendingOpFlag") = True
Session("Accum") = 0
End If
End Sub
Private Sub opclear_Click( _
ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles opclear.Click
CalcPadDisplay.BackColor = Color.White
CalcPadDisplay.Text = "0"
Session("PendingOp") = "Null"
Session("Accum") = 0
End Sub
Private Sub opclearentry_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles opclearentry.Click
CalcPadDisplay.BackColor = Color.White
CalcPadDisplay.Text = "0"
End Sub
Private Sub keyClick( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles key1.Click, key2.Click, key3.Click, _
key4.Click, key5.Click, key6.Click, _
key7.Click, key8.Click, key9.Click, _
key0.Click, keydecimal.Click
Dim tag As String
CalcPadDisplay.BackColor = Color.White
Select Case sender.id
Case "key0"
tag = "0"
Case "key1"
tag = "1"
Case "key2"
tag = "2"
Case "key3"
tag = "3"
Case "key4"
tag = "4"
Case "key5"
tag = "5"
Case "key6"
tag = "6"
Case "key7"
tag = "7"
Case "key8"
tag = "8"
Case "key9"
tag = "9"
Case "keydecimal"
tag = "."
End Select
If CDec(CalcPadDisplay.Text) = 0 _
Or Session("PendingOpFlag") = True Then
CalcPadDisplay.Text = tag
Session("PendingOpFlag") = False
Else
CalcPadDisplay.Text &= tag
End If
End Sub
Private Function AccumCalc(ByRef opcode As String)
Select Case opcode
Case "Divide"
If CDec(CalcPadDisplay.Text) <> 0 Then
AccumCalc = _
Session("Accum") / CDbl(CalcPadDisplay.Text)
Else
CalcPadDisplay.BackColor = Color.Red
AccumCalc = 0
Session("PendingOp") = "Null"
Exit Function
End If
Case "Multiply"
AccumCalc = Session("Accum") * CDbl(CalcPadDisplay.Text)
Case "Add"
AccumCalc = Session("Accum") + CDbl(CalcPadDisplay.Text)
Case "Subtract"
AccumCalc = Session("Accum") - CDbl(CalcPadDisplay.Text)
End Select
End Function
End Class