⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 一个很好的计算器程序
💻 FRM
📖 第 1 页 / 共 2 页
字号:
      Caption         =   "2"
      BeginProperty Font 
         Name            =   "Courier New"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   2
      Left            =   960
      TabIndex        =   3
      Top             =   720
      Width           =   615
   End
   Begin VB.CommandButton cmdNumber 
      Caption         =   "1"
      BeginProperty Font 
         Name            =   "Courier New"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   1
      Left            =   240
      TabIndex        =   2
      Top             =   720
      Width           =   615
   End
   Begin VB.CommandButton cmdNumber 
      Caption         =   "0"
      BeginProperty Font 
         Name            =   "Courier New"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Index           =   0
      Left            =   960
      TabIndex        =   1
      Top             =   2520
      Width           =   615
   End
   Begin VB.TextBox txtDisplay 
      Alignment       =   1  'Right Justify
      BeginProperty Font 
         Name            =   "Courier New"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   390
      Left            =   240
      MaxLength       =   12
      MultiLine       =   -1  'True
      TabIndex        =   0
      Top             =   240
      Width           =   2055
   End
End
Attribute VB_Name = "calcu"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private StoredValue As Double

Private Const opNone = 0
Private Const opAdd = 1
Private Const opSubtract = 2
Private Const opMultiply = 3
Private Const opDivide = 4
Private Operator As Integer

Private NewEntry As Boolean

' Remove the last character.
Private Sub DeleteCharacter()
Dim txt As String
Dim min_len As Integer

    txt = txtDisplay.Text
    If Left$(txt, 1) = "-" Then
        min_len = 2
    Else
        min_len = 1
    End If
    
    If Len(txt) > min_len Then
        txtDisplay.Text = Left$(txt, Len(txt) - 1)
    Else
        txtDisplay.Text = "0"
    End If
End Sub

' Clear the current entry, saved value, and operator.
Private Sub cmdClear_Click()
    cmdClearEntry_Click
    StoredValue = 0
    Operator = opNone
End Sub

' Clear the current entry.
Private Sub cmdClearEntry_Click()
    txtDisplay.Text = ""
End Sub

' Add a decimal point to the display.
Private Sub cmdDecimal_Click()
    If InStr(txtDisplay.Text, ".") Then
        Beep
    Else
        If NewEntry Then
            txtDisplay.Text = "."
            NewEntry = False
        Else
            txtDisplay.Text = txtDisplay.Text & "."
        End If
    End If
End Sub

' Calculate the result of the previous operation.
Private Sub cmdEquals_Click()
Dim new_value As Double

    If txtDisplay.Text = "" Then
        new_value = 0
    Else
        new_value = CDbl(txtDisplay.Text)
    End If
    Select Case Operator
        Case opNone
            StoredValue = new_value
        Case opAdd
            StoredValue = StoredValue + new_value
        Case opSubtract
            StoredValue = StoredValue - new_value
        Case opMultiply
            StoredValue = StoredValue * new_value
        Case opDivide
            StoredValue = StoredValue / new_value
    End Select
    Operator = opNone
    NewEntry = True
    txtDisplay.Text = Format$(StoredValue)
End Sub

' Add a number to the display.
Private Sub cmdNumber_Click(Index As Integer)
    If NewEntry Then
        txtDisplay.Text = Format$(Index)
        NewEntry = False
    Else
        txtDisplay.Text = _
            txtDisplay.Text & Format$(Index)
    End If
End Sub

' Prepare to perform an operation.
Private Sub cmdOperator_Click(Index As Integer)
    ' Perform the previous operation.
    cmdEquals_Click

    ' Remember this operation.
    Operator = Index

    ' Start a new value.
    NewEntry = True
End Sub
' Change the value's sign.
Private Sub cmdPlusMinus_Click()
    If NewEntry Then
        txtDisplay.Text = "-"
    ElseIf Left$(txtDisplay.Text, 1) = "-" Then
        txtDisplay.Text = Right$(txtDisplay.Text, 2)
    Else
        txtDisplay.Text = "-" & txtDisplay.Text
    End If
End Sub

' Check for normal characters.
Private Sub Form_KeyPress(KeyAscii As Integer)
    txtDisplay_KeyPress KeyAscii
End Sub

' Check for unusual characters.
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
    txtDisplay_KeyUp KeyCode, Shift
End Sub

' Keep the cursor on the right.
Private Sub txtDisplay_Change()
    txtDisplay.SelStart = Len(txtDisplay.Text)
End Sub

' Keep the cursor on the right.
Private Sub txtDisplay_GotFocus()
    txtDisplay_Change
End Sub


' Check for normal characters.
Private Sub txtDisplay_KeyPress(KeyAscii As Integer)
Dim ch As String

    ch = Chr$(KeyAscii)
    Select Case ch
        Case "0"
            cmdNumber_Click 0
        Case "1"
            cmdNumber_Click 1
        Case "2"
            cmdNumber_Click 2
        Case "3"
            cmdNumber_Click 3
        Case "4"
            cmdNumber_Click 4
        Case "5"
            cmdNumber_Click 5
        Case "6"
            cmdNumber_Click 6
        Case "7"
            cmdNumber_Click 7
        Case "8"
            cmdNumber_Click 8
        Case "9"
            cmdNumber_Click 9
        Case "*", "x", "X"
            cmdOperator_Click opMultiply
        Case "+"
            cmdOperator_Click opAdd
        Case vbCrLf, vbCr, "="
            cmdEquals_Click
        Case "-"
            cmdOperator_Click opSubtract
        Case "."
            cmdDecimal_Click
        Case "/"
            cmdOperator_Click opDivide
        Case "C", "c"
            cmdClearEntry_Click
    End Select

    KeyAscii = 0
End Sub

' Check for unusual characters.
Private Sub txtDisplay_KeyUp(KeyCode As Integer, Shift As Integer)
    Select Case KeyCode
        Case vbKeyNumpad0
            cmdNumber_Click 0
        Case vbKeyNumpad1
            cmdNumber_Click 1
        Case vbKeyNumpad2
            cmdNumber_Click 2
        Case vbKeyNumpad3
            cmdNumber_Click 3
        Case vbKeyNumpad4
            cmdNumber_Click 4
        Case vbKeyNumpad5
            cmdNumber_Click 5
        Case vbKeyNumpad6
            cmdNumber_Click 6
        Case vbKeyNumpad7
            cmdNumber_Click 7
        Case vbKeyNumpad8
            cmdNumber_Click 8
        Case vbKeyNumpad9
            cmdNumber_Click 9
        Case vbKeyMultiply
            cmdOperator_Click opMultiply
        Case vbKeyAdd
            cmdOperator_Click opAdd
        Case vbKeySeparator
            cmdEquals_Click
        Case vbKeySubtract
            cmdOperator_Click opSubtract
        Case vbKeyDecimal
            cmdDecimal_Click
        Case vbKeyDivide
            cmdOperator_Click opDivide
        Case vbKeyBack, vbKeyDelete
            DeleteCharacter
    End Select
    KeyCode = 0
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -