- ベストアンサー
テキストボックスの桁数をカウントして、フォーカス移動
Win2000、VB6.0です。 テキストボックスとADOコントロールを使用して、レコードを編集・更新するフォームを作っています。 ただ、簡単に書く為に下の説明文ではDBについては書きません。 Form1に、Text1とText2があるとします。 Tab移動だけではなく、Text1に4桁目まで入力された時点で、Text2へフォーカスが移動するようにしたいと考えています。 Text1のChangeイベントで、 ------------------------------------ Private Sub Text1_Change() If Len(Text1.Text) >= 4 Then Text2.SetFocus End If End Sub ------------------------------------ 以上のように記述しています。 ただ、Form1のロード時に、 ------------------------------------ Private Sub Form_Load() Text1.Text = "1111" End Sub ------------------------------------ 以上のように記述すると、 「実行時エラー"5";」 「プロシージャの呼び出し、または引数が不正です。」 とエラーが発生してしまいます。 ロード時にテキストボックスに表示しつつ、入力された現在の桁数をカウントして、フォーカス移動する方法は無いのでしょうか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
SetFocus を使わずに Enabled でフォーカスを移したら? MaxLength も使って。 Private Sub Form_Load() With Text1 .IMEMode = 3 .MaxLength = 4 .Text = "1111" End With End Sub Private Sub Text1_Change() If Len(Text1.Text) >= 4 Then With Text1 .Enabled = False .Enabled = True End With End If End Sub
その他の回答 (1)
エラーを回避されるだけなら Private Sub Text1_Change() If Len(Text1) >= 4 Then If Text2.Visible Then Text2.SetFocus End If End Sub Text2.Visible=TrueならSetFocusとすればエラーは出ないです。