■サイトマップ Search help


Biz/Browserに関する障害レポート



 10135 HtmlViewにフォーカスを当てると、SetFocusメソッドで他のオブジェクトにフォーカス移動ができない 

対象バージョン Biz/Browser V ver5.0.0.0 〜 Biz/Browser V ver5.0.1.1

障害内容 HtmlViewオブジェクトへフォーカスを当てた後、HtmlViewオブジェクトのValueプロパティのセットと、他のオブジェクトに対するSetFocusメソッドの実行を一連の処理で行った場合、HtmlViewオブジェクトからフォーカスが移動しない。

下記スクリプトでは、HtmlViewにValueを設定した後、TextBoxにフォーカスを移動する、という動作をボタン押下で行っているが、HtmlViewをクリックしフォーカスを当てた後にボタンを押下すると、TextBoxへのフォーカス移動が起こらない。

[サンプルスクリプト]
 HtmlView HtmlView1 {
  X = 15;
  Y = 12;
  Width = 333;
  Height = 57;  
 }
 TextBox TextBox1 {
  X = 15;
  Y = 84;
  Width = 333;
  Height = 23;
  TabIndex = 10;
  Function OnGetFocus( e ) {
   BgColor = $CCFFCC;
  }
  Function OnLostFocus( e ) {
   BgColor = $STD;
  }
 }
 TextBox TextBox2 {
  X = 15;
  Y = 117;
  Width = 333;
  Height = 23;
  TabIndex = 20;
  Function OnGetFocus( e ) {
   BgColor = $CCFFCC;
  }
  Function OnLostFocus( e ) {
   BgColor = $STD;
  }
 }
 Button Button1 {
  X = 16;
  Y = 187;
  Width = 78;
  Height = 32;  
  AltKey = $F02;
  Title = "F2";
  
  Function OnTouch( e ) {
   /* HtmlViewへのvalueのセット */
   ^.HtmlView1.value = "<html><body>サンプル</body></html>";
   /* SetFocusメソッドの実行 */
   ^.TextBox2.SetFocus();
  }
 }

※ フォーカス移動対象のオブジェクトのTabIndexプロパティが、HtmlViewオブジェクトのTabIndexプロパティの
  値より小さい場合に現象が発生しやすい。

要因 HTMLViewのLostFocusの処理が不完全だったため、HTMLViewにValueを設定した際、強制的にフォーカスが戻されていた。
Biz/Browser内部の処理順によりHTMLViewへのValue値の反映がSetFocusより早く実行されると、後に実行されたSetFocusが有効となるが、その逆で実行された場合、HtmlViewへフォーカスが戻される現象が発生する。

対処方法
(方法1) SetFocusメソッド実行前に、syncObject関数の実行を行う。

[サンプルスクリプト]
Button Button1 {
  X = 16;
  Y = 187;
  Width = 78;
  Height = 32;  
  AltKey = $F02;
  Title = "F2";
  
  Function OnTouch( e ) {
   /* HtmlViewへのvalueのセット */
   ^.HtmlView1.value = "<html><body>サンプル</body></html>";
   /* syncObject関数の実行 */
   syncObject();
   /* SetFocusメソッドの実行 */
   ^.TextBox2.SetFocus();
  }
}

(方法2) 改修バージョンへのバージョンアップを行う。

改修バージョン

Biz/Browser V Ver 5.0.2.0


■ 障害レポート一覧へ