作成日: 2024/10/30 最終更新日: 2025/02/19
文書種別
不具合
発生環境
5.20222.877以降のバージョンで発生
状況
修正済み
詳細
selectModeがListBoxに設定されている場合にCtrl+クリックで連続しない行を選択します。
この時、selectionChangedイベントの「CellRangeEventArgs」のrowの値が、実際に選択された行の情報ではなく、アクティブセルの行情報が取得されます。
この時、selectionChangedイベントの「CellRangeEventArgs」のrowの値が、実際に選択された行の情報ではなく、アクティブセルの行情報が取得されます。
回避方法
この問題はバージョン5.20242.30で修正されました。
修正版を適用しない場合の回避方法は次の通りです。
以下の処理を追加します。
Object.defineProperty(RowCol.prototype, "isSelected", {
get: function () {
return this._getFlag(RowColFlags.Selected);
},
set: function (e) {
if (!!e != this.isSelected) {
var t = this.grid;
if (t) {
let col1 = t.selectionMode == 5 ? 0 : -1;
let col2 = t.selectionMode == 5 ? t.columns.length-1 : -1;
var i =
this instanceof Row
? new CellRange(this.index, col1, this.index, col2)
: new CellRange(-1, this.index),
o = new CellRangeEventArgs(t ? t.cells : null, i);
if (
t.onSelectionChanging(i) &&
this._setFlag(RowColFlags.Selected, e, !0)
) {
t.refreshCells(!1, !0, !0);
t.onSelectionChanged(o);
}
} else this._setFlag(RowColFlags.Selected, e);
}
},
enumerable: !0,
configurable: !0,
});