• ベストアンサー

TextBoxに値が入力されない場合,次のTextBoxに移動できないようにしたい

TextBox1には、1~9までの値が入力されるようにしています。 デフォルトで"0"表示しています。 TextBox1に、1~9までのどれかの値が入力されない限り、TextBox2にタブ移動できないようにしたいのですが。 つまり、TextBoxに決められた範囲の値での、必須入力制限を設けたいのです。 IF文などで、TextBox1に"0"以外の値が入っているかどうか、判定させればできるかと思うのですが、 もっと簡単に、TextBoxに必須入力の制限を機能させることはできますでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.3

こんにちは、じゃんぬねっと です。 追加質問の回答をします。 > Validating イベントに、上記のコードで、1~9までの必須入力制限をかけることは実現できましたが、 > タブ移動した瞬間に、TextBoxの値が"0"に戻されてしまいます。 > どのあたりに原因がありそうですかね? 通常、何も実装していない状況ではありえないことですよね? つまり、Leave、Validating、Validated あたりのイベントで値を変えていないかを疑うべきだと思います。 VS.NET を使われているのであれば、デバッグを活用してください。 ブレークポイントを設定し、インラインで追って、いつ値が変えられているのかを、まず絞り込む必要があります。

THUBAN
質問者

お礼

他のTextBoxでは上手く動作しているようですので、何か原因があるはずと思います。 ちょっと、いろいろやってみます。 ありがとうございました。

その他の回答 (2)

  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.2

あー、肝心なところレスしてませんでした。 > 1~9までのどれかの値が入力されない限り Select Case TextBox.Text   Case "1" To "9"   Case Else     Cancel = 1 '/ VB.NET では、e.Cancel = True End Select で良いのでは?

THUBAN
質問者

補足

ありがとうございます。 Validating イベントに、上記のコードで、1~9までの必須入力制限をかけることは実現できましたが、タブ移動した瞬間に、TextBoxの値が"0"に戻されてしまいます。 どのあたりに原因がありそうですかね?

  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.1

こんにちは、じゃんぬねっと です。 まず、VB6 ですか? VB2002 以降ですか? どちらにしても、入力チェックですので、検証イベントでやることになります。 Validate イベント (VB2002 以降は、Validating イベント) について調べてみてください。

THUBAN
質問者

お礼

失礼しました。 VB.NET 2003でした。

関連するQ&A