ユーザコントロールを含んだ逆順タブ移動を実現するには?

解決


kenji  2007-02-09 22:31:30  No: 135267

VB6で質問させてください。

例えば、ユーザコントロールに2つテキストボックス(A,Bとする)があり、
TabIndexをA→Bの順で設定し、
それを載せた上位のフォームにはその他に3つのテキストボックス(1,2,3とする)があり、
TabIndexを1→2→ユーザコントロール→3の順で設定します。

この状況で、通常にTabキーを押していくと、
1→2→A→B→3
の順で遷移しますが、
Shiftを押した状態、つまり逆順で遷移させようとすると、
3→A→2→1
となり、Bへフォーカスが移らなくなってしまいます。

このような状況にならないようにする有効な対策はないものでしょうか?

私が今までやってきた方法は、ユーザコントロールの前後に隠しテキストボックスを入れ、
隠しテキストがGotFocusイベントを拾った時点で、
ユーザコントロールの適切なオブジェクトにフォーカスを当てるという方法、
または、全てのTabStopプロパティをFalseにし、
全てのKeyDownイベントで判断させるという、かなり荒っぽいもので、
もう少しスマートな方法はないものかと思い、質問させていただきました。

宜しくお願いします。


K.J.K.  2007-02-10 01:39:56  No: 135268

強引な方法を使うしかないでしょう。
根本的には、複合コントロールであることを止める必要がある、
と思います。


kenji  2007-02-10 09:52:50  No: 135269

やはりそれしかないですか。
ありがとうございました。一応解決とさせて頂きます。


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




  


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