簡體   English   中英

如果文本框為空或文本框小於3

[英]If textbox is empty or textbox is less than 3

如何修復此代碼? 如果文本框為空,則會出現錯誤。

 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為空時顯示錯誤消息

使用val():-如果val(BunifuMaterialTextbox2.Text)<3或val(BunifuMaterialTextbox2.Text)= 0,則MsgBox(“必須至少有3比索利潤”)結束如果並且管理文本框僅允許數字。 實際使用的是將數字與字符串進行比較。 使用上面的代碼將對您有所幫助。

您應該打開Option Strict。 只有少數情況允許它成功,而沒有它就無法成功,並且通常很難重寫。 它所執行的操作與您將要執行的操作相同,但是它使可能的類型失敗不太清楚。

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 <3然后

一切都會正常工作。 但是我真的不建議這樣做,因為如果不知道幕后發生的事情,它就很脆弱。

如果重述為:

Dim bunifuMaterial2 as Integer

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

您不僅可以避免將異常排除為空,而且還可以避免由於輸入了非數字值(例如“ cat”)而導致異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM