爱问知识人 爱问教育 医院库

求有数字按键的简单vb计算器代码,谢谢

首页

求有数字按键的简单vb计算器代码,谢谢


        

提交回答

全部答案

    2018-06-06 04:54:20
  •   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
    '删除最后的字符
    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
    '清除显示内容,保存运算符
    Private Sub cmdClear_Click()
    cmdClearEntry_Click
    StoredValue = 0
    Operator = opNone
    End Sub
    '清除显示内容
    Private Sub cmdClearEntry_Click()
    txtDisplay。
      Text = ""
    End Sub
    ' 显示小数点
    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
    '计算上一操作符的运算结果
    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
    ' 显示数字
    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
    Private Sub cmdOperator_Click(Index As Integer)
    cmdEquals_Click
    Operator = Index
    NewEntry = True
    End Sub
    '改变符号
    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
    '处理键盘按键
    Private Sub Form_KeyPress(KeyAscii As Integer)
    txtDisplay_KeyPress KeyAscii
    End Sub
    Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
    txtDisplay_KeyUp KeyCode, Shift
    End Sub
    Private Sub txtDisplay_Change()
    txtDisplay。
      SelStart = Len(txtDisplay。Text)
    End Sub
    Private Sub txtDisplay_GotFocus()
    txtDisplay_Change
    End Sub
    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
    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。
      

    夏***

    2018-06-06 04:54:20

类似问题

换一换

相关推荐

正在加载...

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 174-193
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):