Biz/Browserに関する障害レポート
9610 | FlexViewでスクリプトからRowPositionを最下行に指定してもスクロールバーの位置が変更されない
|
||||
対象バージョン | Biz/Browser XE Ver 4.3.0.4 〜 Biz/Browser V Ver 5.0.1.0 |
||||
障害内容 | スクロールバーが表示されているFlexViewでスクリプトからRowPositionプロパティを指定することにより、カーソル位置を最下行に移動した場合、スクロールバーの位置が変更されずカーソル位置変更前の状態で表示される。 ※RowPositionプロパティの値は、正しく反映されます。
[スクリプト例] FlexView FlexView1 { X = 7; Y = 52; Width = 221; Height = 176; FlexRecord FlexRecord1 { FlexLabel FlexLabel1 { HorizontalAlign = $CENTER; Title = "A"; } FlexTextBox FlexTextBox1 { Title = "B"; } } } Button Button1 { X = 11; Y = 12; Width = 211; Height = 29; Title = "カーソルを最終行へ移動"; Function OnTouch( e ) { ^.FlexView1.RowPosition = ^.FlexView1.RowCount - 1; } } if ( !$DESIGNTIME ) { FlexView1.InsertRow(20); var row_all = FlexView1.GetRow(); var i = 0; while(!row_all.end){ var row = FlexView1.GetRow(i); ++ i; row.FlexLabel1.value = i; row_all.moveNext(); } } |
||||
要因 | FlexViewでスクリプトからRowPositionを指定した際、スクロールバーの位置の更新が正しく反映されていなかった。
|
||||
対処方法 | (方法1) RowPostionを最下行に指定する前に、1行上の行を指定した後で、最下行に指定する。
[スクリプト例]
FlexView FlexView1 { X = 7; Y = 52; Width = 221; Height = 176; FlexRecord FlexRecord1 { FlexLabel FlexLabel1 { HorizontalAlign = $CENTER; Title = "A"; } FlexTextBox FlexTextBox1 { Title = "B"; } } } Button Button1 { X = 11; Y = 12; Width = 211; Height = 29; Title = "カーソルを最終行へ移動"; Function OnTouch( e ) { ^.FlexView1.RowPosition = ^.FlexView1.RowCount - 2; SetTimer(0.1); } Function OnTimer( e ) { RemoveTimer(); ^.FlexView1.RowPosition = ^.FlexView1.RowCount - 1; } } if ( !$DESIGNTIME ) { FlexView1.InsertRow(20); var row_all = FlexView1.GetRow(); var i = 0; while(!row_all.end){ var row = FlexView1.GetRow(i); ++ i; row.FlexLabel1.value = i; row_all.moveNext(); } } ※実際には、最下行位置にスクロールバーは表示されず、少し上にずれて見えます。 (方法2) 改修バージョンへのバージョンアップを行う。 |
||||
改修バージョン |
Biz/Browser V Ver 5.0.1.1
|
||||