ifでの条件分岐
.net vb2005でプログラミングしています。
2つのテキストボックスがあり、その名前をtextbox1,textbox2 ,
変数の代入をtx1、tx2とします。
どちらも半角数字で300までしか入力できません。
さらに、tx1に入力されるとtx2も必ず入力される必要があります。
tx1が未入力の場合はtx2も未入力である必要があります。
最初にtx1の文字数が0か確認し、入っている場合、居ない場合と
ifで条件分岐させましたが
うまくいきません。。
アドバイスいただきたいと思います。
Dim tx1,tex2 As Integer
If Len(TextBox1.Text) = 0 Then
flg = 0
ElseIf Regex.IsMatch(TextBox1.Text, "^[0-9]{1,3}$") Then
tx1= Val(TextBox1.Text)
tx1 = Convert.ToInt32(iptx5) '文字列をInteger型(数字型)に変換
Else
MsgBox("300までの数字で入力して下さい", vbCritical, "入力エラー")
TextBox1.Clear()
Exit Sub
End If
If tx1 > 255 Then
flg = 1
MsgBox(ipm_msg2, vbCritical, "入力エラー")
TextBox1.Clear()
End If
'**********************************************************************
If Len(TextBox1.Text) = 0 Then
flg = 0
exit sub
ElseIf Regex.IsMatch(TextBox2.Text, "^[0-9]{1,3}$") Then
tx2 = Val(TextBox2.Text)
tx2 = Convert.ToInt32(tex2)
Else
MsgBox(ipm_msg1, vbCritical, "入力エラー")
TextBox2.Clear()
Exit Sub
End If
'**255以上なら入力不可**
If iptx6 > 255 Then
flg = 1
MsgBox(ipm_msg2, vbCritical, "入力エラー")
TextBox6.Clear()
Exit Sub
End If
お礼
わかりました!! tx1からtx2に移るときにtabで移るんですけど、 数字の前に空白が入ってしまい、エラーが出ていることがわかりました。 テキストで、空白が入ったときにそれを無視して、数字に変換してくれないんですか?
補足
エラーはこれです。 Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: tx1.setText("13); * String ttx1 = new String("new"); String ttx2 = new String("new"); ttx1 =tx1.getText(); ttx2 =tx2.getText(); int tr1 = Integer.parseInt(ttx1); int tr2 = Integer.parseInt(ttx2); エラーがでるのは最後の、int tr2 = Integer.parseInt(ttx2);です。 ナンバーのフォーマットの関係でエラーが出ているのは明白です。 その証拠にtr1はエラーがでません。 仮に、ttx2.setText("34); とかを*に入れてやっていくと、 全くエラーがでません。GUIでテキストボックスに数字をを入力してそれをgetしているんですけど、それが何か問題らしいです。空白とかが入っているのかな?