- 締切済み
.NETでのエラー処理方法について
またまたお世話になります。 VB.NETでおおよその動作を確認して、今データ入力時のエラートラップにかかっています。 2つのコンボボックスに開始時間と終了時間を入力するようにしており、終了時間のコンボボックスがフォーカスを失ったときに If 入力時間 > 終了時間 Then messagbox.show("時間がおかしいよ!") ComboBox1.Focus() End If というチェックをかけています。 実際には"時""分"をそれぞれコンボボックスから2バイトのテキストで入力させ、数値換算して大小比較をさせる式を使って判断させています。 メッセージ表示後に入力時間のコンボボックスにフォーカスを戻してもコンボボックス2はフォーカスがないのでずっと繰り返ししつこくメッセージが出続けます。 (当たり前ですよね) 修正するためにこのメッセージを停止する、あるいは計算ルーチンを抜けるにはどうしたらいいのでしょうか? (実際に修正が出来るようにするには??) チェックの考え方が間違っているのかもと思いますが、それも合わせてよろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
noname#187541
回答No.1
こんにちは。 入力時間と終了時間の両方に入力がないと比較しても意味がないように思います。 ですので、コンボボックス1の入力チェックをするときに最初にコンボボックス2に入力があるかどうかをチェックするようにするといいかと思います。 どうでしょうか?
お礼
フォーカスの戻り場所を変えて自己解決しました。 お騒がせいたしました。 ありがとうございました。
補足
ありがとうございます。 少し説明不足なところもありましたので補足させていただきます。 入力画面には (1)日付 (2)開始時間と終了時間 (3)開始時の数字と終了時の数字 があり、みな同じロジックで(1)は今日の日付と比較して未来入力禁止を、(3)は終了の数字の方が大きくなければエラーメッセージを出して再入力もうまくいくのですが、(2)だけが引っかかっています。 時間の誤入力を避けるためのチェックですから両方入力された時点でないと意味がないのです。 そして必ず開始時間より終了時間の方が遅くなければなりません。 間違った入力をそのまま通さないようにしたいのです。