データウィンドウで Shift キーや Ctrl キーを使って複数行を選択する
2021/01/06
方法
データウィンドウで Shift キーを押しながら連続した行を選択したり、Ctrl キーで任意の複数行を選択したりする場合は RowFocusChanging イベント内で KeyDown 関数を呼び出してキーの押下状態を判定します。
KeyDown 関数は特定のキーが押下されているかを判定することができます。また、RowFocusChanging イベントは現在フォーカスのある行と、これからフォーカスが移動しようとしている行が引数として渡されます。
連続した行を選択状態にする場合は、Shift キーが押下されているか KeyDown 関数で判定し、現在フォーカスのある行 (currentrow) から移動先の行 (newrow) までを SelectRow で選択状態にします。
また、連続しない任意の行を複数選択したい場合は Ctrl キーが押下されている事を判定し、フォーカス行が変更される際に選択状態を初期化しないようにします。
【例】
データウィンドウコントロールの RowFocusChanging イベント
long ll_row, ll_start, ll_end // Ctrl キーが押されていない場合は選択状態を初期化 IF NOT KeyDown(KeyControl!) THEN FOR ll_row = 1 TO this.RowCount() this.SelectRow(ll_row, FALSE) NEXT END IF // Shift キーが押されている場合は新しい行まで連続して選択する IF KeyDown(KeyShift!) THEN ll_start = Min(currentrow, newrow) ll_end = Max(currentrow, newrow) FOR ll_row = ll_start TO ll_end this.SelectRow(ll_row, TRUE) NEXT ELSE this.SelectRow(newrow, TRUE) END IF
Tips情報
プロダクト :PowerBuilder
バージョン :2017R3