Vb.net NET计算器;操作后清除文本框
我正在做一个简单的计算器,它正在工作,但我面临的问题是,一旦操作完成,清除文本框,我想开始另一个。 假设我做了一个求和,结果是6,当我点击一个数字开始另一个操作时,它没有清除文本框,我想知道我怎么做 由于我是初学者,请保持你的答案简单 这是我目前拥有的代码:Vb.net NET计算器;操作后清除文本框,vb.net,calculator,Vb.net,Calculator,我正在做一个简单的计算器,它正在工作,但我面临的问题是,一旦操作完成,清除文本框,我想开始另一个。 假设我做了一个求和,结果是6,当我点击一个数字开始另一个操作时,它没有清除文本框,我想知道我怎么做 由于我是初学者,请保持你的答案简单 这是我目前拥有的代码: Public Class Form1 Dim FirstNumber As Long Dim Operation As String 'BUTTONS 'Numbers Private Sub Button1_Click(sender
Public Class Form1
Dim FirstNumber As Long
Dim Operation As String
'BUTTONS
'Numbers
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Viewer.Text = Viewer.Text + "1"
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Viewer.Text = Viewer.Text + "2"
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Viewer.Text = Viewer.Text + "3"
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Viewer.Text = Viewer.Text + "4"
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Viewer.Text = Viewer.Text + "5"
End Sub
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
Viewer.Text = Viewer.Text + "6"
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
Viewer.Text = Viewer.Text + "7"
End Sub
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
Viewer.Text = Viewer.Text + "8"
End Sub
Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
Viewer.Text = Viewer.Text + "9"
End Sub
Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Zero.Click
Viewer.Text = Viewer.Text + "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 Long
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
End Sub
End Class
尝试使用类型为boolean的simpel全局变量,该变量表示要在添加数字之前清除文本,如下所示:
Public Class Form1
Dim FirstNumber As Long
Dim Operation As String
Dim ClearField as Boolean = True 'At program start, you do want to start over at first
...
然后,您应该使用新的sub向查看器添加文本,以使代码更清晰并避免重复:
...
Private Sub AddNumber(NewValue as String)
If ClearField = True Then Viewer.Text = ""
Viewer.Text &= NewValue
ClearField = False
End Sub
...
清除字段一次后,将ClearField变量设置为false,以避免再次清除字段。
在按钮中。单击事件处理程序,您只需使用此子项,而不是手动添加文本:
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
等等。
计算结果后,将ClearField变量设置为true,以便下次添加数字时程序重新启动:
...
Viewer.Text = Result
ClearField = True
...
在代码的开头取一个标志变量。在结果单击事件上,设置标志。下次单击数字按钮时,请检查标志。如果已设置: 清除文本框。 将标志设置回0。 在结果事件中,单击“在查看器后添加此行”。Text=result 下面是一个按钮示例:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If flag=1 then
Viewer.Text = ""
Viewer.Text = Viewer.Text + "1"
flag = 0
Else
Viewer.Text = Viewer.Text + "1"
End If
End Sub
对每个按钮都执行此操作。使用全局变量来识别键入的是数字和操作序列,还是在结果按钮之后的序列的开始
Public Class Form1
Dim FirstNumber As Long
Dim Operation As String
Dim ResultPressed As Boolean
'BUTTONS
'Numbers
Private Sub Typing()
IF ResultPressed Then ' Result button was already pressed. This number or operation typing is first button press after result button
Viewer.Text = ""; ' so let's clear textbox
ResultPressed = False;
End If
' If ResultPressed is false, nothing to do. Continue typing numbers ..
End
Private Sub EndTyping()
ResultPressed = True;
End
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' Typing number or some operation fce Typing() will decides if clear textbox..
Typing()
Viewer.Text = Viewer.Text + "1"
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
' Typing number or some operation fce Typing() will decides if clear textbox..
Typing()
Viewer.Text = Viewer.Text + "2"
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
' Typing number or some operation fce Typing() will decides if clear textbox..
Typing()
Viewer.Text = Viewer.Text + "3"
End Sub
Private Sub Result_Click(sender As Object, e As EventArgs) Handles Result.Click
Dim SecondNumber As Long
Dim Result As Double
' Numbers and operation typing finished.
EndTyping()
SecondNumber = Val(Viewer.Text)
伙计们,要尽快检查他们!非常感谢您的帮助:不需要声明标志吗?我试过了,但即使没有抛出任何错误,它也不起作用……当然需要声明标志。在Dim操作后将其全局声明为字符串作为Dim标志作为整数
Public Class Form1
Dim FirstNumber As Long
Dim Operation As String
Dim ResultPressed As Boolean
'BUTTONS
'Numbers
Private Sub Typing()
IF ResultPressed Then ' Result button was already pressed. This number or operation typing is first button press after result button
Viewer.Text = ""; ' so let's clear textbox
ResultPressed = False;
End If
' If ResultPressed is false, nothing to do. Continue typing numbers ..
End
Private Sub EndTyping()
ResultPressed = True;
End
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
' Typing number or some operation fce Typing() will decides if clear textbox..
Typing()
Viewer.Text = Viewer.Text + "1"
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
' Typing number or some operation fce Typing() will decides if clear textbox..
Typing()
Viewer.Text = Viewer.Text + "2"
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
' Typing number or some operation fce Typing() will decides if clear textbox..
Typing()
Viewer.Text = Viewer.Text + "3"
End Sub
Private Sub Result_Click(sender As Object, e As EventArgs) Handles Result.Click
Dim SecondNumber As Long
Dim Result As Double
' Numbers and operation typing finished.
EndTyping()
SecondNumber = Val(Viewer.Text)