Spread

Q 11
表の最終行の後に空白スペースが表示される
[内容]
スクロールバーで表の最終行までスクロールした際、最終行の後に空白スペースが表示される

A 11
[解決方法]
スクロールによる最終行後の空白スペース表示は、Spreadオブジェクトの仕様となっています。
Spreadオブジェクトは、表の先頭行が全て表示できるよう、各行の上部に合わせて表示します。
従って、最終行が全て表示できていても、先頭行が全て表示できない位置の場合には、行の上部に合わせるため上へスクロールし、最終行の後に空白スペースが表示されます。

これを回避する方法として、最終行、先頭行共に収まるようにSpreadオブジェクトの高さを調節し、Scrolledイベントハンドラ内で先頭行の指定をし表示を戻す方法が考えられます。
この場合、行の指定を強制的に戻しているため、多少のちらつきがあります。


[サンプルコード]
Form Form1 {
    X = 0;
    Y = 0;
    Width = 400;
    Height = 300;

    /* スプレッドに表示されている行数 */
    Number Row_Num = 10;

    Spread Spread1 {
        X = 7;
        Y = 10;
        Width = 382;

         /* ここのサイズを調整することで最終行より後ろの表示が変わります */
        Height = 270;
        SpreadRow SpreadRow1[50] {
            Height = 25;
            SpreadColumn SpreadColumn1{
                Value = index;
            }
            SpreadColumn SpreadColumn2;
            SpreadColumn SpreadColumn3;
        }
        Function OnScrolled( e ) {
            if (e.row > SpreadRow1.Length - ^.Row_Num ){
                SetScrollPos(SpreadRow1.Length - ^.Row_Num);
            }
        }
    }
}
管理番号:Spd_011
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser・Biz/Designer TIPS集 トップへ