フォーカス

Q
フォーカス移動のタイミングで行う入力チェックがループする
[内容]
LostFocusイベント内で実装した入力チェックがループすることがある

A
[解決方法]
LostFocusイベントでフォーカスが変更される様な処理(SetFocusメソッドの実行やメッセージボックスの表示など)を行うと、フォーカス移動がループすることがあります。

例えば、画面上に複数のTextBoxオブジェクト(TextBoxA、TextBoxB)を配置し、各オブジェクトのLostFocusイベントハンドラでメッセージボックスを表示する処理が実装されていた場合、TextBoxBのLostFocusイベントがループします。
これは、TextBoxAからTextBoxBへフォーカス移動したタイミングで発生したLostFocusイベントのイベントハンドラでメッセージボックスを表示することにより、TextBoxBのLostFocusイベントが発生し(メッセージボックスにフォーカスが移動するため)、以降はTextBoxBのLostFocusイベントがループするためです。

OnLostFocusイベントハンドラでフォーカスが変更されるような記述は行わないでください。
対応方法として、オブジェクトの背景色の変更、Labelオブジェクトへエラーメッセージを表示するなどの実装をご検討ください。

また、Biz/Browserを最小化した場合や他のアプリケーションに切り替えた場合もBiz/Browserからフォーカスがなくなり、LostFocusイベントが発生しますのでご留意ください。

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