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

解決


本中  2004-01-20 23:59:04  No: 111460  IP: [192.*.*.*]

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

編集 削除
Say  2004-01-21 00:52:18  No: 111461  IP: [192.*.*.*]

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

編集 削除
本中  2004-01-21 15:51:51  No: 111462  IP: [192.*.*.*]

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-21 17:01:17  No: 111463  IP: [192.*.*.*]

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

編集 削除
本中  2004-01-21 18:01:19  No: 111464  IP: [192.*.*.*]

そのまさかです。素人のやりそうなことを、よくわかってらっしゃると
感心いたしております。
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

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

編集 削除