vb.net - 如何对等式中的语法错误进行例外处理
问题描述
我正在 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
希望它在文本框中显示“语法错误”,而不是像现在这样在不同的窗口中显示。
解决方案
在用于运算符的按钮中使用布尔值。类似于 operatorInAction 的东西,并在单击按钮一次时将其设置为 true。使按钮不打印任何内容,或者在 operatorInAction 为 true 时使其不可点击。添加数字时,将 operatorInAction 设置回 false。您还可以将此功能扩展到 = 按钮,这样您就不会获得以下功能:2*=
推荐阅读
- scala - Scala Spark 将日期转换为特定格式
- c# - 时间跨度解析错误 - 输入字符串格式不正确
- octave - 如何在运行 octave 脚本时从语法错误中获得非零返回?
- sql - 如何使自动递增的 id 列在 SQL Server 中使用缺失的数字?
- java - Java中使用PriorityQueue的第k个最小数字的时间复杂度
- python - 为什么在这个例子中 RidgeCV 中的 alphas=alphas?
- hook-woocommerce - WooCommerce 订阅获得计费间隔和 ID
- node.js - 为什么 nodejs + babelrc + flow 在 Visual Studio 上给我一个错误?
- python - 如果我有多个最小数字并且想要两个索引,如何在 python 中找到数组中最小数字的索引?
- .net - 如何在 WebBrowser 控件和 CookieAwareWebClient 之间共享 cookie?