Vb.net visual basic从文本框中的表达式获取和
我正在VB2010中开发一个计算器,其中用户单击按钮,文本框应该包含单击的文本框的值。我想,如果点击“回车”按钮,它应该显示文本框中表达式的结果。我尝试使用这些代码,但它不起作用。(假设表达式框可能包含“9+7-5”) 及 我得到了在ExpressionBox中写入的字符串。如何获得这些结果?这是一个基本示例 适用于+、-、*和/ 从左到右计算 你可以进一步发展自己 我把它放在keyDown事件中,这样当用户点击enter时它就会进行计算Vb.net visual basic从文本框中的表达式获取和,vb.net,textbox,Vb.net,Textbox,我正在VB2010中开发一个计算器,其中用户单击按钮,文本框应该包含单击的文本框的值。我想,如果点击“回车”按钮,它应该显示文本框中表达式的结果。我尝试使用这些代码,但它不起作用。(假设表达式框可能包含“9+7-5”) 及 我得到了在ExpressionBox中写入的字符串。如何获得这些结果?这是一个基本示例 适用于+、-、*和/ 从左到右计算 你可以进一步发展自己 我把它放在keyDown事件中,这样当用户点击enter时它就会进行计算 Function evaluate(val1 As Do
Function evaluate(val1 As Double, val2 As Double, opr As String) As Double
Dim result As Double = 0
Select Case opr
Case "+"
result = val1 + val2
Case "-"
result = val1 - val2
Case "*"
result = val1 * val2
Case "/"
result = val1 / val2
End Select
Return result
End Function
Function evaluate(expression As String) As String
Dim prevVal As String = ""
Dim result As Double = 0
Dim isStart As Boolean = True
Dim prevExpression As String = ""
For i As Integer = 0 To expression.Length - 1
Dim curChar As String = expression.Substring(i, 1)
Select Case curChar
Case "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "."
prevVal += curChar
Case "+", "-", "*", "/"
prevExpression = curChar
If isStart Then
isStart = False
result = Val(prevVal)
prevVal = ""
Else
result = evaluate(result, Val(prevVal), prevExpression)
prevVal = ""
End If
End Select
Next
result = evaluate(result, Val(prevVal), prevExpression)
Return result.ToString()
End Function
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.Enter Then
TextBox1.Text = evaluate(TextBox1.Text)
End If
End Sub
看起来你是对的,但我不能理解在我的代码中实现它们的代码。我不明白你是否在问如何在你的项目中实现它们。如果是这样,那么您只需将上述代码中名为“evaluate”的两个函数添加到表单中即可。然后将ResultBox.text=evaluate(ExpressionBox.text)写入所需的处理程序..好的。非常感谢你
ResultBox.text=val(ExpressionBox.text)
Function evaluate(val1 As Double, val2 As Double, opr As String) As Double
Dim result As Double = 0
Select Case opr
Case "+"
result = val1 + val2
Case "-"
result = val1 - val2
Case "*"
result = val1 * val2
Case "/"
result = val1 / val2
End Select
Return result
End Function
Function evaluate(expression As String) As String
Dim prevVal As String = ""
Dim result As Double = 0
Dim isStart As Boolean = True
Dim prevExpression As String = ""
For i As Integer = 0 To expression.Length - 1
Dim curChar As String = expression.Substring(i, 1)
Select Case curChar
Case "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "."
prevVal += curChar
Case "+", "-", "*", "/"
prevExpression = curChar
If isStart Then
isStart = False
result = Val(prevVal)
prevVal = ""
Else
result = evaluate(result, Val(prevVal), prevExpression)
prevVal = ""
End If
End Select
Next
result = evaluate(result, Val(prevVal), prevExpression)
Return result.ToString()
End Function
Private Sub TextBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.Enter Then
TextBox1.Text = evaluate(TextBox1.Text)
End If
End Sub