- ベストアンサー
タブダイアログのフォーカスの移動について
タブダイアログを使った場合の フォーカスの移動についての質問です。 状態としましては フォームにタブ数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 となっています。 タブダイアログのフォーカス移動を制御するには どうしたら良いのでしょうか? また、行方不明になってしまうフォーカスの 現在位置を見つけるようなことはできますでしょうか? よろしく回答のほどお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>フォーカスがどこに行ったのか行方不明になってしまいます。 カレントではないタブに乗ったテキストボックスなどに、フォーカスが移動しているため。 回避策 SSTab1_Clickのイベントで現在のカレントタブを認識し、全てのテキストボックスのTabStopの状態を切り替える。
その他の回答 (1)
- todo36
- ベストアンサー率58% (728/1234)
フォーカスが移った時のタブの切り替えを面倒みるとか 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
お礼
2chさんの回避策にて希望の動きを実現できましたが、 todo36さんの意見も参考にさせていただきます。 すばやい返答ありがとうございました。
お礼
早速の返事ありがとうございます。 回避策にて無事に希望通りの動きをしてくれました。 適切な回答どうもありがとうございました。