アプリ版:「スタンプのみでお礼する」機能のリリースについて

タブダイアログを使った場合の
フォーカスの移動についての質問です。

状態としましては
フォームにタブ数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
となっています。

タブダイアログのフォーカス移動を制御するには
どうしたら良いのでしょうか?

また、行方不明になってしまうフォーカスの
現在位置を見つけるようなことはできますでしょうか?

よろしく回答のほどお願いします。

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/07/18 13:57

>フォーカスがどこに行ったのか行方不明になってしまいます。


カレントではないタブに乗ったテキストボックスなどに、フォーカスが移動しているため。

回避策
SSTab1_Clickのイベントで現在のカレントタブを認識し、全てのテキストボックスのTabStopの状態を切り替える。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/07/18 13:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!