Vb.net 计算器;显示数字和运算符

Vb.net 计算器;显示数字和运算符,vb.net,calculator,Vb.net,Calculator,我正在使用计算器,我想知道是否有人能给出一些关于如何在文本框中显示数字和运算符的提示。我试着自己做,但没有成功 您好 仅p.D.提示,未完成代码。我需要学习 这是我的密码 Public Class Form1 Dim FirstNumber As Double Dim Operation As String Dim ClearField As Boolean = True Private Sub AddNumber(NewValue As String) If ClearField =

我正在使用计算器,我想知道是否有人能给出一些关于如何在文本框中显示数字和运算符的提示。我试着自己做,但没有成功

您好

仅p.D.提示,未完成代码。我需要学习

这是我的密码

Public Class Form1
Dim FirstNumber As Double
Dim Operation As String
Dim ClearField As Boolean = True

Private Sub AddNumber(NewValue As String)
    If ClearField = True Then Viewer.Text = ""
    Viewer.Text &= NewValue
    ClearField = False

End Sub

'BUTTONS
'Numbers

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    AddNumber("1")

End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    AddNumber("2")
End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    AddNumber("3")
End Sub

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
    AddNumber("4")
End Sub

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
    AddNumber("5")
End Sub

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
    AddNumber("6")
End Sub

Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
    AddNumber("7")
End Sub

Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
    AddNumber("8")
End Sub

Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
    AddNumber("9")
End Sub

Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Zero.Click
    AddNumber("0")
End Sub

'Buttons "," "del" "clear"

Private Sub Button14_Click(sender As Object, e As EventArgs) Handles Dot.Click
    Viewer.Text = Viewer.Text + ","
End Sub

Private Sub Button17_Click(sender As Object, e As EventArgs) Handles Del.Click
    Viewer.Text = Viewer.Text.Remove(Viewer.Text.Length - 1, 1)
End Sub

Private Sub Clear_Click(sender As Object, e As EventArgs) Handles Clear.Click
    Viewer.Text = ""
End Sub

Private Sub Sum_Click(sender As Object, e As EventArgs) Handles Sum.Click
    FirstNumber = Val(Viewer.Text)
    Operation = "SUM"
    Viewer.Text = ""
End Sub

Private Sub Minus_Click(sender As Object, e As EventArgs) Handles Minus.Click
    FirstNumber = Val(Viewer.Text)
    Operation = "MINUS"
    Viewer.Text = ""
End Sub

Private Sub Multi_Click(sender As Object, e As EventArgs) Handles Multi.Click
    FirstNumber = Val(Viewer.Text)
    Operation = "MULTI"
    Viewer.Text = ""
End Sub

Private Sub Div_Click(sender As Object, e As EventArgs) Handles Div.Click
    FirstNumber = Val(Viewer.Text)
    Operation = "DIV"
    Viewer.Text = ""
End Sub

Private Sub Result_Click(sender As Object, e As EventArgs) Handles Result.Click
    Dim SecondNumber As Double
    Dim Result As Double

    SecondNumber = Val(Viewer.Text)

    'Fx
    If Operation = "SUM" Then
        Result = FirstNumber + SecondNumber
    End If

    If Operation = "MINUS" Then
        Result = FirstNumber - SecondNumber
    End If

    If Operation = "MULTI" Then
        Result = FirstNumber * SecondNumber
    End If

    If Operation = "DIV" Then
        Result = FirstNumber / SecondNumber
    End If

    Viewer.Text = Result
    ClearField = True

End Sub


Private Sub SalirToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles SalirToolStripMenuItem1.Click
    End
End Sub
末级

a)不要使用
Val

这很糟糕,从长远来看会造成问题

b) 使用枚举:

Enum myOp
   None 
   Adding 
   Subbing
   Divide
   Equals
End Enum

Dim Op As myOp
它们最终会有0到4之间的整数值,但您可以通过名称来引用它们。在大多数人看来,Case语句所产生的代码更少,更易于阅读:

Select Case Op
      Case myOp.Adding
           Result = FirstNumber + SecondNumber

      Case myOp.Subbing
            Result = FirstNumber - SecondNumber
    ' etc

这可以防止在您忘记是“添加”、“添加”、“添加”、“添加”还是“添加”(和/或拼写错误为“addton”)时出现讨厌的错误。

+1只需要提示而不需要答案!!-我有点困惑什么事情没有发生。。。你能解释什么是错的吗?你不想要的是什么?a)不要使用<代码> Value/Cube >使用<代码>转换。Toxxx < /代码>或<代码>整数。解析/ tryPARSE < /代码> b)考虑定义一个枚举来跟踪操作而不是字符串c)我不知道你想要什么“文本框”,但是我会在“1”中显示一个标签中的进度……"1 + "..."1 + 2 =". 标签是有意义的,因为你不想让用户编辑进度显示(“查看器”进度显示(特别是如果输入来自单个输入文本框。)@JohnBustos Ty,我在这里学习对吗?:)顺便说一句,我希望我的计算器在文本框中同时显示数字和运算符(结果也是)。现在,当我一个接一个地按下按钮时,显示的内容会消失。。i、 e 2+2=4只需将点击事件代码移动到输入文本框。按键事件,当您看到一个数字或一个操作符调用旧的点击代码时,否则让VB处理退格,删除etcIf您还想显示操作符,然后需要查看您的
[operator]\u click
事件代码。。。现在您有了
Viewer.Text=“
”,所以您正在存储号码,但告诉文本框清除。。。另外,如果要显示
…=结果
,您还需要查看您的
结果\u单击
事件
Viewer.Text=Result
-同样,您正在强制文本框仅显示结束值,而不是使用等号将reult添加到结束处。。。。