• ベストアンサー

タブダイアログのフォーカスの移動について

タブダイアログを使った場合の フォーカスの移動についての質問です。 状態としましては フォームにタブ数3のタブダイアログがあり、 それぞれのタブに3つテキストボックスがあります。 また、タブダイアログとは別にフォーム上に 閉じるボタンが1つあります。 現在1つ目のタブの1つ目のテキストボックスに フォーカスがあり、Tabキーでフォーカスを 移動させていくのですが、 3つ目のテキストボックスでtabキーを押すと フォーカスがどこに行ったのか 行方不明になってしまいます。 なぜか2つ目と3つ目のタブの 3つ目のテキストからは 閉じるボタンへフォーカスが移動するのですが、 1つ目のテキストだけが行方不明になってしまいます。 (shift+tabで戻ってきません) また、3つ目のタブのキャプションからの フォーカス移動も行方不明となってしまうます。 タブインデックスは タブダイアログボックスが0 1つ目のタブの1つ目のテキストが1 1つ目のタブの2つ目のテキストが2 1つ目のタブの3つ目のテキストが3 2つ目のタブの1つ目のテキストが4        ・        ・ 3つ目のタブの3つ目のテキストが9 閉じるボタンが10 となっています。 タブダイアログのフォーカス移動を制御するには どうしたら良いのでしょうか? また、行方不明になってしまうフォーカスの 現在位置を見つけるようなことはできますでしょうか? よろしく回答のほどお願いします。

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

  • ベストアンサー
  • 2ch
  • ベストアンサー率51% (64/125)
回答No.1

>フォーカスがどこに行ったのか行方不明になってしまいます。 カレントではないタブに乗ったテキストボックスなどに、フォーカスが移動しているため。 回避策 SSTab1_Clickのイベントで現在のカレントタブを認識し、全てのテキストボックスのTabStopの状態を切り替える。

soma3
質問者

お礼

早速の返事ありがとうございます。 回避策にて無事に希望通りの動きをしてくれました。 適切な回答どうもありがとうございました。

その他の回答 (1)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

フォーカスが移った時のタブの切り替えを面倒みるとか Private Sub Text1_GotFocus(Index As Integer) Select Case Index Case 0, 1, 2 SSTab1.Tab = 0 Case 3, 4, 5 SSTab1.Tab = 1 Case 6, 7, 8 SSTab1.Tab = 2 End Select End Sub

soma3
質問者

お礼

2chさんの回避策にて希望の動きを実現できましたが、 todo36さんの意見も参考にさせていただきます。 すばやい返答ありがとうございました。