Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net visual basic从文本框中的表达式获取和_Vb.net_Textbox - Fatal编程技术网

Vb.net visual basic从文本框中的表达式获取和

Vb.net visual basic从文本框中的表达式获取和,vb.net,textbox,Vb.net,Textbox,我正在VB2010中开发一个计算器,其中用户单击按钮,文本框应该包含单击的文本框的值。我想,如果点击“回车”按钮,它应该显示文本框中表达式的结果。我尝试使用这些代码,但它不起作用。(假设表达式框可能包含“9+7-5”) 及 我得到了在ExpressionBox中写入的字符串。如何获得这些结果?这是一个基本示例 适用于+、-、*和/ 从左到右计算 你可以进一步发展自己 我把它放在keyDown事件中,这样当用户点击enter时它就会进行计算 Function evaluate(val1 As Do

我正在VB2010中开发一个计算器,其中用户单击按钮,文本框应该包含单击的文本框的值。我想,如果点击“回车”按钮,它应该显示文本框中表达式的结果。我尝试使用这些代码,但它不起作用。(假设表达式框可能包含“9+7-5”)

我得到了在ExpressionBox中写入的字符串。如何获得这些结果?

这是一个基本示例

适用于+、-、*和/

从左到右计算

你可以进一步发展自己

我把它放在keyDown事件中,这样当用户点击enter时它就会进行计算

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