首页 > 解决方案 > 如何对等式中的语法错误进行例外处理

问题描述

我正在 vb.net 中制作一个简单的计算器。用户可以使用按钮在文本框中输入,等号按钮将字符串转换为等式。它工作得很好,除了用户可以输入任意数量的运算符,例如,他们可以添加 7*************3。这给出了一个语法错误,但它显示在一个外部窗口中,我希望它在文本框中显示“语法错误”,而不是在不同的窗口中。

Private Sub ButtonClickMethod(sender As Object, e As EventArgs) Handles equalsBtn.Click 'and other buttons, but I left them out

Dim button As Button = CType(sender, Button)

If button.Name = "equalsBtn" Then
            Dim equation As String = TextBox1.Text
            Dim result = New DataTable().Compute(equation, Nothing)
            TextBox1.Text = result
        End If

'other buttons

End Sub

希望它在文本框中显示“语法错误”,而不是像现在这样在不同的窗口中显示。

标签: vb.net

解决方案


在用于运算符的按钮中使用布尔值。类似于 operatorInAction 的东西,并在单击按钮一次时将其设置为 true。使按钮不打印任何内容,或者在 operatorInAction 为 true 时使其不可点击。添加数字时,将 operatorInAction 设置回 false。您还可以将此功能扩展到 = 按钮,这样您就不会获得以下功能:2*=


推荐阅读