SetActiveCellメソッド呼び出し後にLeaveCellイベントおよびEnterCellイベントが発生しません

文書番号 : 82876     文書種別 : 技術情報     登録日 : 2018/06/14     最終更新日 : 2018/06/14
文書を印刷する
対象製品
SPREAD for Windows Forms 11.0J
詳細
これは製品仕様上の正しい動作となります。

◎LeaveCellイベント・EnterCellイベントについて
当イベントは通常、ユーザー操作(Tabキー・矢印キー・マウスクリックなど)のセル移動によって発生します。
アクティブセルのインデックスはユーザーの操作結果によって異なるため、SPREADでは常にインデックス情報を管理したうえで当イベントを発生させ、イベント引数にて移動前および移動後のアクティブセルインデックスを提供しています。これらのイベント利用により、例えばユーザー操作によるセル移動時にアクティブセルの背景色を変更したりすることが出来ます。

◎SetActiveメソッドについて
当メソッドは指定された任意のセルを無条件にアクティブとする機能となります。シート上にフォーカスが存在しない状態で、例えば標準コマンドボタン押下により当メソッドを呼び出すような処理を実装した場合、SPREADはこのタイミングでの移動前アクティブセルインデックスを取得出来ないため、LeaveCellイベントおよびEnterCellイベントを発生させることが不可能となります。

よって、LeaveCellイベントまたはEnterCellイベントに実装している処理をSetActiveCellメソッド呼び出し時にも行いたい場合には、イベント内における同様の処理をSetActiveCellメソッド呼び出し時でも行うなどの対応が必要となります。