我如何进行多次撤消&使用以下代码重做函数?
private void btn_Undo_Click(object sender, EventArgs e) //To Undo previous searched record
{
if (_dataSet != null && _dataSet.Tables.Count > 0 && _lastDtTable2 != null)
{
_dataSet.Tables.Clear();
_dataSet.Tables.Add(_lastDtTable2);
dataGridView1.DataSource = _dataSet.Tables[0];
}
}
private void btn_Redo_Click_2(object sender, EventArgs e)
{
if (_dataSet != null && _dataSet.Tables.Count > 0 && _lastDtTable2 != null)
{
_dataSet.Tables.Add();
dataGridView1.DataSource = _dataSet.Tables[0];
}
我只能撤消一次
答案 0 :(得分:0)
要维护多堆撤消,您需要使用一个结构(例如,堆栈是一个很好的结构),并保留用户的历史记录。
每个动作都是"推动"进入堆栈。
每当他按下"返回",你就会简单地弹出" pop"旧的国家,用它做你想做的事。