CPF/CPF.ReoGrid/Actions/CopyRangeAction.cs
2024-06-24 10:15:59 +08:00

43 lines
1.2 KiB
C#

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;
}
}