如果文本框为空或文本框小于3

问题描述 投票:0回答:2

我该如何修复此代码?如果文本框为空,则会出错。

 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 <3或者textbox.text为空,则显示错误消息

vb.net visual-studio visual-studio-2017
2个回答
0
投票

使用val(): - 如果val(BunifuMaterialTextbox2.Text)<3或val(BunifuMaterialTextbox2.Text)= 0则MsgBox(“必须具有至少3比索利润”)结束如果和管理文本框仅允许数字。实际上使用是将数字与字符串进行比较。使用上面的代码它会对你有所帮助。


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,因此将始终评估两个条件。此外,您具有将首先导致异常的条件,因此每当您的文本框为空时,它都会抛出异常。

您可以将其重写为:If Bunifu MaterialTextbox2.Text =“”OrElse Bunifu Material Textbox2.Text <3 Then

一切都会正常工作。但我真的不推荐它,因为不知道幕后发生了什么,它很脆弱。

如果您将其重写为:

Dim bunifuMaterial2 as Integer

If not Integer.TryParse(BunifuMaterialTextbox2.Text, bunifuMaterial2) OrElse bunifuMaterial2 < 3 Then

您不仅可以避免空的异常,而且如果他们输入非数字值(例如“cat”),也可以避免异常。

© www.soinside.com 2019 - 2024. All rights reserved.