TabIndexが5のコントロールにフォーカスを移動するには?

解決


本中  2004-01-21 08:59:04  No: 111460

フォーム上にある、TabIndexが5のコントロールにフォーカスを移動するにはどうすれば、よいでしょうか?
TabIndexが5のコントロールは、TextBoxか、ComboBoxか、あるいは、
その他入力が可能なコントロールです。


Say  2004-01-21 09:52:18  No: 111461

ControlsコレクションのメンバをFor Eachでまわして、
TabIndex=5であるオブジェクトを探し、
SetFocusしてループを抜けるとか。


本中  2004-01-22 00:51:51  No: 111462

Sayさん,ありがとうございます。
アドバイスを理解しきれていないのか......

いくつか、テキストボックス、コンボボックスなどをおいた
Form1で、

Dim Con as Control
For Each Con in Form1.Controls
    If Con.TabIndex = 5 Then
       MsgBox(TypeName(Con))
       Exit For
    End If
Next
は、動作しますが、
For Each Con in Form1.Controls
    If Con.TabIndex = 5 Then
       Con.SetFocus
       Exit For
    End If
Next
では、「プロシージャの呼び出し、または、引数が必要です」となりますが。


Say  2004-01-22 02:01:17  No: 111463

まさか、Form_LoadあたりでShowする前にやってるなんてことは・・・


本中  2004-01-22 03:01:19  No: 111464

そのまさかです。素人のやりそうなことを、よくわかってらっしゃると
感心いたしております。
Private Sub Form_Load()
Dim Con as Control
For Each Con in Me.Controls
    If Con.TabIndex = 5 then
         Me.Show 'Load時にするのなら、Showしてからということですね。
         Con.SetFocus
         Exit For
    End If
Next
End Sub

ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加