Spread

Q

24

行の複数選択をしたい

A 24
[解決方法]
Spreadオブジェクトの配下に配置したSpreadColumnオブジェクトのOnClickedイベント
ハンドラの引数には、

Number ShiftKey Shiftキーの押下状態
Number AltKey Altキーの押下状態
Number CtrlKey Ctrlキーの押下状態
Number xPos クリックされたX座標
Number yPos クリックされたY座標
Number row クリックされたセルの行位置
Number col クリックされたセルの列位置

が含まれており、これらの引数の情報を基に選択範囲を判断し、背景色を変更する
といった実装でマウスによる複数選択を表現することが出来ます。

また、FormオブジェクトのOnKeyDownイベントハンドラを利用して、
Shiftキー+矢印キー操作による複数選択動作を表現することも可能です。

■クリックによる複数選択例
Spread Spread1 {
    SpreadRow SpreadRow1 {
        SpreadColumn SpreadColumn1{
        }
        :
    }
    
    /* SpreadColumnで発生したClickedイベントを
       親オブジェクトで捕捉 */
    Function OnClicked( e ) {

        /* Shiftキーの押下状態をチェック */
        if( e.ShiftKey ) {
            :
            /* 選択行の背景色の設定 */
            sRow = <選択開始行の設定>
            eRow = <選択終了行の設定>
            for( var i = sRow; i <= eRow; i++ ) {
                SpreadRow1[i].BgColor = $FFCCCC;
            }
        } else if( e.CtrlKey ) {
            :
        } else {
            :
        }
    }
}

サンプルでは選択を行単位としていますが、OnClickedイベントハンドラの引数の
col(クリックされたセルの列位置)や、OnKeyDownイベントハンドラ内でSpreadの
ColumnPositionプロパティを参照することで、セル単位での範囲選択も実装可能です。


他の一覧表示オブジェクトでの複数選択の方法は、以下をご参照ください。

FlexViewの場合
  FlexView 行の複数選択をしたい

ListViewの場合
  ListView 行の複数選択をしたい



[サンプルコード]



CRSファイル形式のサンプル
  「Spread 行の複数選択サンプル(Spd_024.zip)
をご参照ください。

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