作成日: 2020/10/21 最終更新日: 2021/05/26
文書種別
不具合
状況
修正済み
詳細
ClearSelectedCellsDataアクションをキーに割り当て、多数のセルを選択してからデータおよび数式を持つセルをクリアしようとすると処理に時間がかかります。例えば、行数が6万行あるSPREADコントロールで列を選択してClearSelectedCellsDataアクションを使用すると、10.0Jではすぐに処理が完了するのに対して、本バージョンでは1分以上経っても処理が完了しません。
回避方法
Service Pack 4(v11.0.4505.2012)で修正済み。
Service Pack 4を適用せずに対処する方法としては、独自のアクションを使用することでクリア処理時間を短縮することが可能です。しかし、ClearSelectedCellsDataはアンドゥに対応していますが、このカスタムアクションは対応していません。
// 回避策
var im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);
im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Delete, Keys.None), "CustomDeleteAction");
var am = fpSpread1.GetActionMap();
am.Put("CustomDeleteAction", new CustomDeleteAction());
// 独自の削除アクション
public class CustomDeleteAction : FarPoint.Win.Spread.Action
{
public override void PerformAction(object sender)
{
var sheet = (sender as FarPoint.Win.Spread.SpreadView).GetSheetView();
var range = sheet.GetSelection(0);
sheet.ClearRange(range.Row, range.Column, range.RowCount, range.ColumnCount, true);
}
}
var im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);
im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Delete, Keys.None), "CustomDeleteAction");
var am = fpSpread1.GetActionMap();
am.Put("CustomDeleteAction", new CustomDeleteAction());
// 独自の削除アクション
public class CustomDeleteAction : FarPoint.Win.Spread.Action
{
public override void PerformAction(object sender)
{
var sheet = (sender as FarPoint.Win.Spread.SpreadView).GetSheetView();
var range = sheet.GetSelection(0);
sheet.ClearRange(range.Row, range.Column, range.RowCount, range.ColumnCount, true);
}
}
旧文書番号
86106