【发布时间】:2021-04-28 22:10:48
【问题描述】:
我正在尝试在 DataGridView 中添加撤消功能
我实现了逐个处理单元格的功能,但还没有实现撤消大单元格的功能。
public class UndoBuffer
{
public string undoCell { get; set; }
public int rowIndex { get; set; }
public int colIndex { get; set; }
}
这是有问题的代码。
第一次执行时,声明类类型的列表,在单元格编辑开始和结束时,依次保存上一个值、行、列。
但是,执行删除、粘贴或替换等操作后,代码无法正常工作。
所以我尝试在类中添加一个列表,以便在处理大单元格时使用。
这样
public class UndoBuffer
{
public string undoCell { get; set; }
public int rowIndex { get; set; }
public int colIndex { get; set; }
public List<UndoBuffer> bufferArray = new List<UndoBuffer>(); //Added Code
}
声明它没有问题,但是当我尝试使用它时,我遇到了语法错误。
这段代码是我在给缓冲区栈一个一个分配的时候写的
private List<UndoBuffer> undoBuffers = new List<UndoBuffer>(); //Declare CustomList
...
...
undoBuffers.Add(new UndoBuffer() { undoCell = beginEditCell, rowIndex = e.RowIndex, colIndex = e.ColumnIndex });
并且这段代码被用来在缓冲区堆栈上分配大量单元格。
List<UndoBuffer> undobuffer = new List<UndoBuffer>();
List<UndoBuffer> array = new List<UndoBuffer>();
array.Add(new UndoBuffer()
{
undoCell = "BeginCell",
rowIndex = 33,
colIndex = 2
});
array.Add(new UndoBuffer()
{
undoCell = "BeginCell",
rowIndex = 34,
colIndex = 3
});
**undobuffer.Add(new UndoBuffer() {bufferArray.AddRange(array) });** // Grammar error code
我的编码方向是否错误,而不仅仅是语法错误?
请,任何建议将不胜感激。
谢谢你
【问题讨论】:
-
new UndoBuffer() {bufferArray = array }? -
谢谢,修复类代码后( public List
bufferArray = { get; set;} ),我执行了代码,它工作正常。
标签: c# datagridview undo