如何修复此代码?如果文本框为空,则会出错。
Private Sub MetroButton1_Click(sender As Object, e As EventArgs) Handles MetroButton1.Click
If BunifuMaterialTextbox2.Text < 3 Or BunifuMaterialTextbox2.Text = "" Then
MsgBox("must have atleast 3 pesos profit")
End If
End Sub
如果textbox.text是&lt; 我想要的是显示错误信息3或者如果textbox.text为空
答案 0 :(得分:0)
使用val(): - 如果val(BunifuMaterialTextbox2.Text)&lt; 3或val(BunifuMaterialTextbox2.Text)= 0然后MsgBox(&#34;必须至少有3比索利润&#34;)结束If 并且管理文本框只允许数字。 实际上使用是将数字与字符串进行比较。使用上面的代码它会对你有所帮助。
答案 1 :(得分:0)
你应该打开Option Strict On。只有少数边缘情况允许某些事情成功,如果没有它就会成功,而那些重写通常是微不足道的。它的作用与您将要执行的操作相同,但它使可能的类型失败不太清楚。
If BunifuMaterialTextbox2.Text < 3 Or BunifuMaterialTextbox2.Text = "" Then
因为您有Option Strict Off,所以将其视为
If CInt(BunifuMaterialTextbox2.Text) < 3 Or BunifuMaterialTextbox2.Text = "" Then
CInt在Nothing上成功,返回0,但在“”上失败,抛出异常。由于您使用Or而不是OrElse,因此将始终评估两个条件。此外,您具有首先导致异常的条件,因此每当您的文本框为空时,它都会抛出异常。
您可以将其重写为: 如果BunifuMaterialTextbox2.Text =“”OrElse BunifuMaterialTextbox2.Text&lt; 3那么
一切都会正常运作。但我真的不推荐它,因为不知道幕后发生了什么,它很脆弱。
如果你把它改为:
Dim bunifuMaterial2 as Integer
If not Integer.TryParse(BunifuMaterialTextbox2.Text, bunifuMaterial2) OrElse bunifuMaterial2 < 3 Then
你不仅可以避免空的例外,如果他们输入非数字值,例如“cat”,也可以避免例外。