📄 operationrecorder.cs
字号:
using System;
using System.Collections;
namespace Utilities
{
/// <summary>
/// 完成对树节点操作的前进与后退功能:类似于Windows资源管理器与IE。
/// </summary>
public class OperationRecorder
{
//内部数据存入集合中
private ArrayList BackOpts = new ArrayList();
private ArrayList ForwardOpts = new ArrayList();
//最多存储50个操作
private const int MaxOpt = 50;
public void AddOpt(object opt)
{
if(opt == null)
return;
//不允许连续两次加入同样的节点
if(BackOpts.Count > 0 && opt == BackOpts[BackOpts.Count - 1])
return;
if(this.BackOpts.Count == MaxOpt)
{
//集合中操作已满,则删除最早的一个操作
this.BackOpts.RemoveAt(0);
}
BackOpts.Add(opt);
//清空前进集合
this.ForwardOpts.Clear();
}
/// <summary>
/// 后退,如果无操作,则返回null
/// </summary>
/// <returns></returns>
public object Back()
{
object opt = null;
int count = this.BackOpts.Count;
if(count > 0)//挑出最近一次操作
{
opt = this.BackOpts[count - 1];
this.BackOpts.RemoveAt(count - 1);
//移入前进的集合中
this.ForwardOpts.Add(opt);
}
return opt;
}
/// <summary>
/// 前进,如果无操作,则返回null
/// </summary>
/// <returns></returns>
public object Forward()
{
object opt = null;
int count = this.ForwardOpts.Count;
if(count > 0)//挑出最近一次操作
{
opt = this.ForwardOpts[count - 1];
this.ForwardOpts.RemoveAt(count - 1);
//移入后退的集合中
this.BackOpts.Add(opt);
}
return opt;
}
/// <summary>
/// 初始化
/// </summary>
public void Init()
{
this.BackOpts.Clear();
this.ForwardOpts.Clear();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -