📄 cacl.vb
字号:
'
Me.Calc5.FlatStyle = System.Windows.Forms.FlatStyle.Popup
Me.Calc5.Location = New System.Drawing.Point(56, 88)
Me.Calc5.Name = "Calc5"
Me.Calc5.Size = New System.Drawing.Size(30, 30)
Me.Calc5.TabIndex = 7
Me.Calc5.Text = "5"
'
'CalcDec
'
Me.CalcDec.FlatStyle = System.Windows.Forms.FlatStyle.Popup
Me.CalcDec.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold)
Me.CalcDec.Location = New System.Drawing.Point(96, 168)
Me.CalcDec.Name = "CalcDec"
Me.CalcDec.Size = New System.Drawing.Size(30, 30)
Me.CalcDec.TabIndex = 18
Me.CalcDec.Text = "."
'
'Calc1
'
Me.Calc1.FlatStyle = System.Windows.Forms.FlatStyle.Popup
Me.Calc1.Location = New System.Drawing.Point(16, 128)
Me.Calc1.Name = "Calc1"
Me.Calc1.Size = New System.Drawing.Size(30, 30)
Me.Calc1.TabIndex = 11
Me.Calc1.Text = "1"
'
'CalcMul
'
Me.CalcMul.FlatStyle = System.Windows.Forms.FlatStyle.Popup
Me.CalcMul.Location = New System.Drawing.Point(136, 88)
Me.CalcMul.Name = "CalcMul"
Me.CalcMul.Size = New System.Drawing.Size(30, 30)
Me.CalcMul.TabIndex = 9
Me.CalcMul.Text = "*"
'
'Calculator
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(224, 211)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.CalcRes, Me.CalcPlus, Me.CalcDec, Me.CalcSign, Me.Calc0, Me.CalcCan, Me.CalcSub, Me.Calc3, Me.Calc2, Me.Calc1, Me.CalcCE, Me.CalcMul, Me.Calc6, Me.Calc5, Me.Calc4, Me.CalcBS, Me.CalcDiv, Me.Calc9, Me.Calc8, Me.Calc7, Me.CalcField})
Me.Font = New System.Drawing.Font("Arial", 8.0!)
Me.MaximizeBox = False
Me.Menu = Me.CalcMenu
Me.Name = "Calculator"
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "计算器"
Me.ResumeLayout(False)
End Sub
#End Region
'BS Click 事件
Protected Sub CalcBS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalcBS.Click
Dim Value As String
Value = CalcField.Text
If ((Value.CompareTo("0.") <> 0) And (Value.Length <> 0)) Then
Value = Value.Remove(Value.Length - 1, 1)
End If
If ((Value.Length = 0) Or (Value = "-")) Then
Value = "0."
End If
CalcField.Text = Value
End Sub
'取消 Click 事件
Protected Sub CalcCan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalcCan.Click
Reset()
End Sub
'取消项 Click 事件
Protected Sub CalcCE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalcCE.Click
If (mLastInput.Equals(Operation.Operand)) Then
CalcField.Text = "0."
ElseIf (mLastInput.Equals(Operation.Operator)) Then
mOpFlag = mOpPrev
End If
mLastInput = Operation.CE
End Sub
Protected Sub CalcDiv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalcDiv.Click
CalcRes_Click(sender, e)
End Sub
'+, -, *, /, = Click 事件!
Protected Sub CalcRes_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalcRes.Click
If (CalcField.Text.Length = 0) Then
Return
End If
If (mLastInput.Equals(Operation.Operand)) Then
mNumOps = mNumOps + 1
End If
Select Case mNumOps
Case 1
mOp1 = Double.Parse(CalcField.Text)
Case 2
mOp2 = Double.Parse(CalcField.Text)
Select Case mOpFlag
Case "+"
mOp1 = mOp1 + mOp2
Case "-"
mOp1 = mOp1 - mOp2
Case "*"
mOp1 = mOp1 * mOp2
Case "/"
If (mOp2 = 0) Then
MessageBox.Show("不能被零除!", "计算器", MessageBoxButtons.OK)
Else
mOp1 = mOp1 / mOp2
End If
Case "="
mOp1 = mOp2
End Select
CalcField.Text = mOp1.ToString()
mNumOps = 1
End Select
mLastInput = Operation.Operator
mOpPrev = mOpFlag
Dim SelButton As Button
SelButton = sender
mOpFlag = SelButton.Text
End Sub
Protected Sub CalcSub_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalcSub.Click
CalcRes_Click(sender, e)
End Sub
Protected Sub CalcMul_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalcMul.Click
CalcRes_Click(sender, e)
End Sub
Protected Sub CalcPlus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalcPlus.Click
CalcRes_Click(sender, e)
End Sub
'+/- Click 事件
Protected Sub CalcSign_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalcSign.Click
If (CalcField().Text.Substring(0, 1) = "-") Then
CalcField().Text = CalcField().Text.TrimStart(mMinus.ToCharArray())
Else
CalcField().Text = mMinus + CalcField().Text
End If
mLastInput = Operation.Operand
End Sub
Protected Sub Calc5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calc5.Click
CalcNum_Click(sender, e)
End Sub
Protected Sub Calc3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calc3.Click
CalcNum_Click(sender, e)
End Sub
Protected Sub Calc1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calc1.Click
CalcNum_Click(sender, e)
End Sub
Protected Sub Calc4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calc4.Click
CalcNum_Click(sender, e)
End Sub
Protected Sub Calc9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calc9.Click
CalcNum_Click(sender, e)
End Sub
Protected Sub CalcDec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalcDec.Click
CalcNum_Click(sender, e)
End Sub
Protected Sub Calc8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calc8.Click
CalcNum_Click(sender, e)
End Sub
Protected Sub Calc2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calc2.Click
CalcNum_Click(sender, e)
End Sub
Protected Sub Calc0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calc0.Click
CalcNum_Click(sender, e)
End Sub
Protected Sub Calc7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calc7.Click
CalcNum_Click(sender, e)
End Sub
Protected Sub Calc6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calc6.Click
CalcNum_Click(sender, e)
End Sub
'0 - 9, .、Click 事件
Protected Sub CalcNum_Click(ByVal sender As Object, ByVal e As System.EventArgs)
If (mLastInput.Equals(Operation.Operand) = False) Then
CalcField.Text = "0."
End If
Dim SelButton As Button
SelButton = sender
FormatEditField(SelButton.Text)
mLastInput = Operation.Operand
End Sub
'退出菜单处理程序
Protected Sub ExitMenu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Application.Exit()
End Sub
'专用帮助器
'用于格式化文本框中的项的帮助器!
Private Sub FormatEditField(ByVal NewChar As String)
Dim Value As String
Value = CalcField.Text
If (Value.CompareTo("0.") = 0) Then
Value = NewChar
Else
'确定是否有多个 .
If (NewChar = ".") Then
'如果找到它,则返回
If (Value.IndexOf(NewChar) <> -1) Then
'不要执行任何操作
Return
End If
End If
Value = Value + NewChar
End If
CalcField.Text = Value
End Sub
' 用于初始化值的帮助器
Private Sub Reset()
mOp1 = 0
mOp2 = 0
mNumOps = 0
mLastInput = Operation.None
mOpFlag = ""
mOpPrev = ""
CalcField.Text = "0."
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -