2017-12-17 7 views
0

このコードを修正するにはどうすればよいですか?テキストボックスが空の場合はエラーです。 textbox.textが< 3の場合、または私が欲しいものテキストボックスが空白またはテキストボックスが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は空

+0

コードファイルの先頭に 'Option Strict On'を入れてから[ask]を読んで[tour]を読んでください – Plutonix

+0

TextBoxの** String **値を** Integer **に変換します[Int32.TryParse](https://msdn.microsoft.com/en-us/library/f02979c7(v = vs.110).aspx)を参照してください。 –

答えて

0

利用のval()の場合: - のval(BunifuMaterialTextbox2.Text)< 3の場合またはval(BunifuMaterialTextbox2.Text)= 0 Then MsgBox( "少なくとも3ペソの利益が必要です")End If そして、テキストボックスは番号のみを管理します。 実際には文字列と数値を比較しています。あなたに役立つ上記のコードを使用してください。

0

Option Strictをオンにする必要があります。それがなければ成功しないものと、書き直すのが一般的でないものとで何かを成功させることができるエッジケースはほんのわずかです。それがしていることはあなたがやっているのと同じ行動ですが、タイプの失敗の可能性をあまり明確にしません。

If BunifuMaterialTextbox2.Text < 3 Or BunifuMaterialTextbox2.Text = "" Then 

あなたはオプションオフ厳格を持っているので、これは

If CInt(BunifuMaterialTextbox2.Text) < 3 Or BunifuMaterialTextbox2.Text = "" Then 

として扱われますCInt関数は0を返し、何もに成功しますが、例外を投げ、 "" で失敗します。 OrElseの代わりにOrを使用しているので、両方の条件が常に評価されます。また、例外が最初に発生する条件があるので、テキストボックスが空の場合は例外がスローされます。

あなたはそのようREWITEできます その後3 < OrElse BunifuMaterialTextbox2.Text "BunifuMaterialTextbox2.Text =" もし

し、すべてが正常に動作します。しかし、実際に何が起こっているのか分からなければ、それは壊れやすいので、私は本当にそれをお勧めしません。

あなたのようにそれをREWITE場合:

Dim bunifuMaterial2 as Integer 

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

だけでなく、彼らは同様に、このような「猫」のような非数値を入力した場合は、空の上の例外を避けることができます、あなたは例外を回避ます。

関連する問題