Q5:フレーム、ダイアログ表示時の初期フォーカスについて。フレーム、ダイアログを開いたときに、フォーカスがどこにも無い状態になってしまい困っています。
Q5-1:
(1) ダイアログ表示時の初期フォーカスについて
入力画面(フレーム) → データ検索画面(ダイアログ)など、ダイアログを使用しています。
そのダイアログを開いたときに、フォーカスがどこにもない状態になってしまい困っています。
TABキーを押してもどこにもフォーカスは移らない。
Alt+TABで再度そのウィンドウをアクティブにしてみても、フォーカスは得られない。
マウスでクリックすれば、アクティブになります。
コンポーネントタブ順を自分で設定したいため、フォーカス移動順序を「画面追加順」に設定すると、そのようになってしまいます。
その動きは、フレームでも同様のようなのですが、フレームの場合は、キック時に「フレームを表示する」→「入力フォーカスを設定する」とすることでフォーカスが得られます。
ですが、ダイアログの場合は、キック時に「ダイアログを表示する」→「入力フォーカスを設定する」としても、(「入力フォーカスを〜」が処理されるのは、ダイアログが閉じた後のため?)フォーカスが得られません。
できればキーボードのみでも操作できるよう、マウス操作が必須になるのはできれば避けたい、という思いです。なにか回避方法、あるいは「ダイアログが開いたとき」のイベント処理など(参考資料でも)ないでしょうか。
A5-1:
[ダイアログ]、[フレーム]の属性情報設定から「FocusTraversalPolicyProvider=true」として下さい。お試し頂いても改善されない場合には、ご面倒でも再度ご連絡頂ければ幸いです。
お知らせ頂いた現象につきまして、次期バージョンからは修正を検討しておりますが、今回設定して頂く内容、その他に影響はございません。
※ Ver.2.7で修正しました。
備考:「フレーム」の「Q&A11」にも掲載。