Visual Basic

  1. Home
  2. Computing & Technology
  3. Visual Basic

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

Explore Visual Basic

By Category

About.com Special Features

Visual Basic

  1. Home
  2. Computing & Technology
  3. Visual Basic

©2009 About.com, a part of The New York Times Company.

All rights reserved.