c# 栈的介绍与应用---编辑器撤销操作~
2018-03-08 11:59
246 查看
说明
栈(Stack)是一个只有一个出口的后进先出的对象集合。
申明方法
重要属性
Count 当前栈内元素个数
常用方法
Pop 移除并返回在 Stack 的顶部的对象
push 向 Stack 的顶部添加一个对象
peek 返回在 Stack 的顶部的对象,但不移除它
ToArray 创建数组并将堆栈元素复制到其中
Contains 判断一个元素是否在栈中
Clear 从 Stack 中移除所有的元素。
应用—-编辑器撤销操作
原理与实现:
每次操作都把操作之前的内容压入栈中,撤销的时候就从栈中取出一个恢复
看代码吧~
栈(Stack)是一个只有一个出口的后进先出的对象集合。
申明方法
public class Stack<T> : IEnumerable<T>, ICollection, IEnumerable Stack<string> beforeRtf = new Stack<string>();
重要属性
Count 当前栈内元素个数
常用方法
Pop 移除并返回在 Stack 的顶部的对象
push 向 Stack 的顶部添加一个对象
peek 返回在 Stack 的顶部的对象,但不移除它
ToArray 创建数组并将堆栈元素复制到其中
Contains 判断一个元素是否在栈中
Clear 从 Stack 中移除所有的元素。
应用—-编辑器撤销操作
原理与实现:
每次操作都把操作之前的内容压入栈中,撤销的时候就从栈中取出一个恢复
看代码吧~
//申明一个空栈 Stack<string> beforeRtf = new Stack<string>(); //初始状态撤销不可用 btnBack.Enabled = false; //定义一个删除某一行的操作 public void delLine(int line) { //记录操作之前的内容&入栈 beforeRtf.Push(richTextBox1.Text); //执行操作 List<string>s=richTextBox1.Lines.ToList(); s.RemoveAt(line); string str=string.Join("\r\n", s); richTextBox1.Text=str; //标记撤销可用 btnBack.Enabled = true; } public void Revoke() { //取得上一步操作的内容&出栈 richTextBox1.Text= beforeRtf.Pop(); //如果栈内没有与元素 标记撤销不可用 if (beforeRtf.Count<=0) { btnBack.Enabled = false; } }
相关文章推荐
- C#读写操作app.config中的数据应用介绍
- C#读写操作app.config中的数据应用介绍
- C#串口操作实际应用开发详解
- C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍
- 储存过程介绍及c#中的应用2
- c#中使用NetCDF存储二维数据的读写操作简单应用
- c#实现操作FTP文件类的应用
- Lua介绍极其在C#项目中的应用
- Winform(C#)操作Excel(数据分组应用)
- C#基础知识-XML介绍及基本操作
- C#开发微信门户及应用(35)--微信支付之企业付款封装操作
- C#开发微信门户及应用(46)-基于Bootstrap的微信门户应用管理系统功能介绍
- c# 关于InkCanvas面板,撤销的操作
- 储存过程介绍及c#中的应用3
- MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中
- c#编写XML读写删改功能,算是比较全面的介绍XML操作的文章了。
- C# LINQ to XML应用介绍
- c# datagirdview操作的简单介绍
- 使用C#开发Metro 风格应用的路线图 -- 触屏操作
- C#与SQLite的操作介绍