フォーカス

Q
フォームからダイアログを、ダイアログから別ダイアログを呼び出し、
別ダイアログを閉じると、フォームにフォーカスが移ってしまう
[内容]
(1)Form1からDialog1を呼び出す。さらにDialog1からDialog2を呼び出す。





(2)Dalog2を閉じると、Dialog1にフォーカスが戻らず、Form1にフォーカスが
  戻ってしまう。


A
[原因]
ルートオブジェクト"//"からダイアログを取得すると、オブジェクトツリーの同階層に
Form1、Dialog1、Dialog2のオブジェクトが並んで生成されるため、Dialog2を削除した場合に
Form1にフォーカスが当たってしまいます。

■ダイアログの呼び出し

Form1.crs
  /* Dialog1の呼び出し */
  //.Get( "Dialog1.crs" );

Dialog1.crs
  /* Dialog2の呼び出し */
  //.Get( "Dialog2.crs" );


■オブジェクトの階層(Biz/Designerのウォッチビューで確認)





[解決方法]
ダイアログをFormやDialogから取得し、オブジェクト階層を調整します。

■ダイアログの呼び出し

Form1.crs
  /* Dialog1の呼び出し */
  Form1.Get( "Dialog1.crs" );

Dialog1.crs
  /* Dialog2の呼び出し */
  Dialog1.Get( "Dialog2.crs" );


■オブジェクトの階層(Biz/Designerのウォッチビューで確認)





オブジェクト階層を調整することで、Dialog2を閉じた後、Dialog1にフォーカスが戻ります。



管理番号:Fcs_003
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser・Biz/Designer TIPS集 トップへ