using System; namespace CPF.ReoGrid.Actions { public class CopyRangeAction : BaseWorksheetAction { public PartialGridCopyFlag ContentFlags { get; set; } public RangePosition FromRange { get; set; } public CellPosition ToPosition { get; set; } public CopyRangeAction(RangePosition fromRange, CellPosition toPosition) { this.ContentFlags = PartialGridCopyFlag.All; this.FromRange = fromRange; this.ToPosition = toPosition; } public override void Do() { RangePosition rangePosition = new RangePosition(this.ToPosition.Row, this.ToPosition.Col, this.FromRange.Rows, this.FromRange.Cols); this.backupGrid = base.Worksheet.GetPartialGrid(rangePosition); base.Worksheet.CopyRange(this.FromRange, rangePosition); base.Worksheet.SelectionRange = rangePosition; } public override void Undo() { RangePosition toRange = new RangePosition(this.ToPosition.Row, this.ToPosition.Col, this.FromRange.Rows, this.FromRange.Cols); base.Worksheet.SetPartialGrid(toRange, this.backupGrid); base.Worksheet.SelectionRange = this.FromRange; } public override string GetName() { return "Copy Range"; } private PartialGrid backupGrid; } }